http://acm.pku.edu.cn/JudgeOnline/problem?id=1006

Код:
#include <stdio.h>

int main()
{
    int p,e,i,d, cnt;

    for(cnt=1;;cnt++) {
        scanf("%d %d %d %d", &p, &e, &i, &d);
        if(p==-1 && e==-1 && i==-1 && d==-1) break;

        p%=23;e%=28;i%=33;
        for(;;) {
            if(p>d && p==e && e==i) break;
            if(p<=e && p<=i) p+=23;
            else if(e<=p && e<=i) e+=28;
            else if(i<=p && i<=e) i+=33;
        }

        printf("Case %d: the next triple peak"
                " occurs in %d days.\n", cnt, p-d);
    }

    return 0;
}