-
//zoj1160 Biorhythms
- //Accepted 1160 C ++ 00:00.02 396K
-
/*
-
Chinese remainder theorem
-
a1 = p, a2 = e, a3 = i
-
m1 = 23, m2 = 28, m3 = 33
-
m = m1*m2*m3 = 23*28*23 = 21252
-
M1 = m/m1 = 28*33, M2 = m/m2 = 23*33, M3 = m/m3 = 23*28
-
y1 = M1(mod m1) = 6, y2 = M2(mod m2) = 19, y3 = M3(mod m2) = 2
-
x = a1*M1*y1+a2*M2*y2+a3*M3*y3 (mod m)
-
*/
-
#include <stdio.h>
-
int main()
-
{
-
#ifdef ONLINE_JUDGE
-
#else
-
freopen("1160.txt","r",stdin);
-
#endif
-
int p,e,i,d,x;
-
int test;
-
while (scanf ("%d",&test) != EOF) {
-
while (test--) {
-
int cnt = 1;
-
while (scanf ("%d %d %d %d",&p,&e,&i,&d) != EOF) {
-
if (p == -1) break;
-
x = (p*6*28*33+e*19*23*33+i*2*23*28)%21252;
-
x -= d;
-
if (x <= 0 ) x += 21252;
-
printf ("Case %d: the next triple peak occurs in %d days./n",cnt++,x);
-
}
-
if (test) printf ("/n");
-
}
-
}
-
#ifdef ONLINE_JUDGE
-
#else
-
fclose(stdin);
-
#endif
-
return 0;
-
}
zoj1160 Biorhythms
最新推荐文章于 2020-04-13 01:18:06 发布