Отримання знань

дистанційна підтримка освіти школярів


Ошибки в дате
http://acm.pku.edu.cn/JudgeOnline/problem?id=1044

   Входные данные

   Выходные данные

   Пример входных данных

   Пример выходных данных

   Анализ условия и обсуждение идеи решения

   Пример решения на C++:

#include < stdio.h >
#include < math.h >
int mod(int);
int find_max(void);
int count_z(int);
int y[20], a[20], b[20];
int d[20], n;
main(){
int max, z;
int i, k = 0;
while ( 1 ) {
scanf("%d", &n);
if ( n == 0 ) break;
for ( i = 0 ; i < n ; i++ ){
scanf("%d %d %d", &y[i], &a[i], &b[i]);
d[i] = a[i]-b[i];
if (d[i] < 0) d[i]=-d[i];}
k++;
max = find_max();
z = count_z(max);
printf("Case #%d:\n", k);
if ( z < 10000 ) printf("The actual year is %d.\n", z);
else printf("Unknown bugs detected.\n");
printf("\n"); }
}
int mod(int num){
int i;
for ( i = 0 ; i < n ; i++ )
if ( ( num - y[i] ) % d[i] != 0 ) return 0;
return 1;
}
int count_z(int z){
int i;
while ( z < 10000 ) {
if ( mod(z) == 1 ) return z;
z++; }
return 10001;
}
int find_max(void){
int i;
int max;
max = y[0];
for ( i = 1 ; i < n ; i++ )
if ( max < y[i] ) max = y[i];
return max;
}

 

Попередня Зміст Наступна
В системі: гості - (); користувачі - (0)