参考了一下百度。。。
1 #include <iostream> 2 #include <cstdio> 3 #include <cstdlib> 4 #include <algorithm> 5 #include <cstring> 6 7 using namespace std; 8 const int maxn = 10086; 9 int sleep[11]; 10 int wake[11]; 11 int start[11]; 12 13 int main() 14 { 15 int n,i,j,x,y,k,ans = 0; 16 while(cin >> n && n) 17 { 18 //memset(a,0,sizeof(a)); 19 for(i=1; i<=n; i++) 20 { 21 cin >> x >> y >> k; 22 wake[i]=x,sleep[i]=y,start[i]=k; 23 } 24 int time = 0,flag = 0; 25 while(++time) 26 { 27 int cnt = 0; 28 for(i=1; i<=n; i++) 29 { 30 if(start[i]<=wake[i]) 31 cnt++; 32 } 33 if(cnt==n)break; 34 for(i=1; i<=n; i++) 35 { 36 if(start[i]==wake[i]+sleep[i]||(start[i]==wake[i]&&cnt>=n-cnt)) 37 start[i] = 0; 38 start[i]++; 39 } 40 if(time == maxn) 41 { 42 flag = 1; 43 break; 44 } 45 46 } 47 if(flag) 48 printf("Case %d: -1\n",++ans); 49 else 50 printf("Case %d: %d\n",++ans,time); 51 } 52 return 0; 53 }
原文:http://www.cnblogs.com/HsiaoYeekwan/p/6359043.html