結果

問題 No.1595 The Final Digit
ユーザー irona
提出日時 2021-07-09 22:06:15
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 1,315 bytes
コンパイル時間 3,884 ms
コンパイル使用メモリ 230,820 KB
実行使用メモリ 6,948 KB
最終ジャッジ日時 2024-07-01 16:31:39
合計ジャッジ時間 5,045 ms
ジャッジサーバーID
(参考情報)
judge2 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 6 WA * 8 RE * 3
権限があれば一括ダウンロードができます

ソースコード

diff #

#include<bits/stdc++.h>
#include <atcoder/all>
#define ll long long int
#define vec vector<ll>
#define mat vector<vector<ll>>
#define pll pair<ll,ll>
#define count __builtin_popcountll

using namespace std;
using namespace atcoder;
//using mint = modint1000000007;

const ll mod=1000000007;//998244353;
const ll inf=1000000000000000000;
ll dx4[4]={1,0,-1,0};
ll dy4[4]={0,-1,0,1};
ll dx8[8]={1,0,-1,1,-1,1,0,-1};
ll dy8[8]={1,1,1,0,0,-1,-1,-1};

ll f(ll a,ll b,ll c){
  return 100*a+10+b*c;
}

int main(){
  cout << fixed << setprecision(15);

  ll p,q,r,k;
  cin >> p >> q >> r >> k; 
  p%=10;
  q%=10;
  r%=10;
  vec a(3);
  a[0]=p;
  a[1]=q;
  a[2]=r;

  vec s(1000);
  ll e=0;
  s[f(r,q,p)]++;
  while(1){
    ll x=(p+q+r)%10;
    p=q;
    q=r;
    r=x; 
    if(s[f(r,q,p)]>0)break;
    s[f(r,q,p)]++;
    e++;
  }
  ll c=f(r,q,p);

  ll d=0;
  vec b=a;
  while(f(a[2],a[1],a[0])!=c){
    ll x=(a[0]+a[1]+a[2])%10;
    a[0]=a[1];
    a[1]=a[2];
    a[2]=x;
    d++;
  }

  k-=3;

  if(k<=d){
    for(ll i=0;i<k;i++){
      ll x=(b[0]+b[1]+b[2])%10;
      b[0]=b[1];
      b[1]=b[2];
      b[2]=x;      
    }
    cout << b[2] << endl;
  }
  else{
    k=k-d;
    k%=(e-d);
    for(ll i=0;i<k;i++){
      ll x=(r+q+p)%10;
      p=q;
      q=r;
      r=x;      
    }
    cout << r << endl;
  }


  

  return 0;
}
0