[THUPC2021] 挑战图灵奖
Time_tears · · 题解
原题等价于给
考虑当
当
算出答案后与
#include<bits/stdc++.h>
#define Mx 1000005
using namespace std;
char N[Mx],X[Mx];
int n,k,x;
void Check(int a,int b) {
if(a==b)puts("Correct, but it doesn't necessarily mean that you can win the Turing Award.");
if(a<b)puts("Wrong, don't cheat me, you are too far away from the Turing Award.\n1");
if(a>b)puts("Wrong, don't cheat me, you are too far away from the Turing Award.\n0");exit(0);
}
int main() {
scanf("%s%d%s",N+1,&k,X+1);
if(strlen(X+1)>=4)return puts("Wrong, don't cheat me, you are too far away from the Turing Award.\n1"),0;
for(int i=1,len=strlen(X+1); i<=len; ++i)x=x*10+X[i]-'0';
if(strlen(N+1)>5) {
for(int i=1,len=strlen(N+1); i<=len; ++i)n=(n*10+N[i]-'0')%(k+1);
if(n==0)Check(k+1,x);else Check(k+2,x);
} else {
for(int i=1,len=strlen(N+1); i<=len; ++i)n=n*10+N[i]-'0';
if(n<k+1)Check(n,x);
int tmp=n/(k+1),tt=n%(k+1);
for(int ans=0; 1; ++ans)if(tmp*ans>=tt)Check(k+1+ans,x);
}
return 0;
}