题目给的mod数组是固定,直接手算吧
AC代码:
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
//freopen("input.txt","r",stdin);
int p,e,i,d,cnt=0;
while(~scanf("%d%d%d%d",&p,&e,&i,&d)){
if(p==-1 && e==-1 && i==-1 && d==-1)
break;
int ans=(5544*(p%23)+14421*(e%28)+1288*(i%33) )%21252;
ans-=d;
ans=(ans+21252)%21252; //防止ans为负值,加mod取mod
if(ans==0)
ans=21252;
printf("Case %d: the next triple peak occurs in %d days.\n",++cnt,ans);
}
return 0;
}