弱鸡求助
查看原帖
弱鸡求助
112631
Lovable_Wind楼主2021/8/22 20:16
#include<bits/stdc++.h>
using namespace std;
const double pi=3.14;
const int inf=0x3f3f3f3f;
const int NIL=-1;
#define f(i,l,r) for(int i=l;i<=r;i++)
long long a[500010],t[5000],k,firstt[5000];
int ringo(int x,int y){
	return x*10+y;
}
int read()
{
    int ans=0,flag=1;
    char ch=getchar();
    while( (ch>'9' || ch<'0') && ch!='-' ) ch=getchar();
    if(ch=='-') flag=-1,ch=getchar();
    while(ch>='0' && ch<='9') ans=ans*10+ch-'0',ch=getchar();
    return ans*flag;
}
int main()
{
	//freopen(".in","r",stdin);
	//freopen(".out","w",stdout);
	cin>>a[1]>>a[2]>>k;
	long long i=2,d,loc;
	while(t[ringo(a[i],a[i-1])]<2){
		t[ringo(a[i],a[i-1])]++;
		if (firstt[ringo(a[i],a[i-1])]==0) firstt[ringo(a[i],a[i-1])]=i-1;
		i++;
		a[i]=a[i-1]*a[i-2]%10;
	}
	if (firstt[ringo(a[i],a[i-1])]>=k){
		cout<<a[k]<<endl;
	}
	else{
		d=i-1-firstt[ringo(a[i],a[i-1])];
		loc=k-firstt[ringo(a[i],a[i-1])]+1;
		cout<<a[loc%d+firstt[ringo(a[i],a[i-1])]-1]<<endl;
	}
}

现在WA #4 之前写的时候WA了好多,将输出[]中的东西-1之后就只WA了#4,已证实似乎与long long无关

2021/8/22 20:16
加载中...