题目比较好理解 链接→ Uva 12108
理解:
题目介绍很有意思,有兴趣可以看一下 ヾ(≧▽≦*)o
1.没有第0分钟,起始是第1分钟
2.每个学生检查睡觉人数是否严格大于清醒人数时,以上一分钟为标准
3.所有学生观察的时间我们认为同时且瞬时
4.第一次写,想不用flag中不…后来发现这样就不满足同时了…)唉还是太菜了…)
5.无限长 ⇨ 1000000 mins
AC水码:
//#include "stdafx.h"
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <string>
#include <sstream>
#include <vector>
#include <set>
#include <map>
#include <stack>
#include <queue>
using namespace std;
const int Time = 1e6;
int main() {
int cp = 0, n;
int a[15], b[15], c[15];
while (cin>>n && n) {
bool sleep[15];//标记变量
int num;//the number of sleeps.
for (int i = 0; i < n; i++) {
cin >> a[i] >> b[i] >> c[i];
if (c[i]>a[i]) sleep[i] = 1;
}
int t = 1;
for (; t < Time; t++) {
if (t > 1)
for (int i = 0; i < n; i++) {
if (c[i] == a[i])
if (num > n/2) sleep[i] = true; else c[i] = 0;
else if (c[i] == a[i] + b[i])
c[i] = 0,sleep[i] = false;
c[i]++;
}
num = 0;//每分钟统计一次
for (int i = 0; i<n; i++) if (sleep[i]) num++;
if (num == 0) break;
}
printf("Case %d: %d\n", ++cp, (num ? -1 : t));
}
return 0;
}