/*
* 大学生活十分滋润,每天晚上的夜生活更是令人向往,然而在一个丰富的夜生活过后,第二天却不得不面对在课堂上睡觉这种非常惬意但是又惊心动魄的事情。
*
* 在一堂高数课上,刚刚经历“夜生活”的n名大学生十分困倦,想要趁机睡觉,然而他们又害怕被老师发现,扣除平时分,所以他们想出了一个策略,就是每听a分钟的课,睡b分钟。然后再听a分钟的课,再睡b分钟,以此类推。我们将这样a+b构成的时间称之为一个周期。
*
* 但是!他们都很胆小,害怕睡觉的人数太少,被抓住之后被当成典型来杀鸡儆猴,所以他们在每次准备睡觉的时候,都会再看一下现在睡觉的人数是否大于清醒的人数(哪怕睡觉的人数和听课的人数相等也不敢睡觉),只有在这个时候他才可以放心大胆的睡觉。否则他们会选择再等a分钟看看是否满足条件。
*
* 现在请你写出一个程序,来求出经过多少时间之后,所有学生都在清醒状态。
* Input
* 输入有多组。
*
* 每组数据的第一行是一个整数n(0 <= n <= 10),代表高数课上有n名学生。若n为0,则代表输入结束,你什么都不必输出。
*
* 之后的n行每行有三个整数a、b、c。
* 其中第i行的数据代表第i名学生每经过a分钟就会查看是否满足睡觉条件,满足就睡b分钟,不满足则接着等待a分钟。高数课开始时,这名学生正处在这个睡觉周期的第c分钟。(数据保证1 <= a <= 5且1 <= b <= 5,并且每组数据都是正确的)
* Output
* 每组数据你应当首先输出"Case #: ",#代表目前是第几组数据。请注意,Case和#之间有一个空格,冒号与输出的数字之间也有一个空格。
*
* 然后输出一个整数,代表在高数课开始多长时间之后,所有学生都处于清醒状态。
* 如果无论经过多长时间所有学生都不可能都处于清醒状态,请输出-1。
* Sample Input
* 3
* 2 4 1
* 1 5 2
* 1 4 3
* 3
* 1 2 1
* 1 2 2
* 1 2 3
* 0
* Sample Output
* Case 1: 18
* Case 2: -1
* Hint
* 提示:
* ①你可以认为如果在很长的时间之内(比如1000000)都没有所有人都处在清醒状态的情况的话,那么之后也不会出现这种情况。
* ②每个周期都从第1分钟开始,意思是说:如果a为1,b为1,那么当c为1时,说明刚开始他是清醒的。
* ③判断是否睡觉与上一分钟的睡觉人数有关。
* ④本题翻译自英语,你可以点击下面的PDF字样,找到英文原版pdf格式的题目。
* */
#include<string.h>
#include<stdio.h>
struct str{
int a,b,c;
int wake;
}arr[20];
int n;
int sleep;
void timepass(int i)//记录下一时间人睡觉
{
arr[i].c++;
if(arr[i].c<=arr[i].a)
arr[i].wake=1;
if(arr[i].c==arr[i].a+1)
{
if(sleep*2>n)//满足一半人都睡觉
arr[i].wake=0;
else
{
arr[i].c=1;
arr[i].wake=1;
}
}
if(arr[i].c==arr[i].a+arr[i].b+1)//一个周期之后
{
arr[i].c=1;
arr[i].wake=1;
}
}
int main()
{
int i;
int ns;//统计下一分钟睡觉的人
int count=0;//记录case的次数
while(scanf("%d",&n)&&n)
{
sleep=0;
count++;
memset(arr,0,sizeof(arr));
for(i=0;i<n;i++)
{
scanf("%d %d %d",&arr[i].a,&arr[i].b,&arr[i].c);
if(arr[i].c>arr[i].a)
sleep++;//统计开始睡的人
}
if(sleep==0)//没人睡觉
{
printf("Case %d: 1\n",count);
continue;
}
int flag=0;
for(int j=2;j<100000;j++)//从第而分钟开始
{
ns=0;
for(i=0;i<n;i++)
{
timepass(i);
if(arr[i].wake==0)
ns++;//统计下一分钟睡觉的人
}
if(ns==0)//下一分钟没人睡觉
{
printf("Case %d: %d\n",count,j);
flag=1;
break;
}
sleep=ns;//全部人都便利之后,sleep和ns交换,sleep就变成上一秒
}
if (flag==0)//没有人清醒
printf("Case %d: -1\n",count);
}
}