您的位置:首页 > 其它

codeforces 417B - Crash

2014-04-18 09:47 447 查看
题目链接:http://codeforces.com/problemset/problem/417/B

题目大意:每个提交者都有一个id标识,并且每次提交有两个信息:x
- 之前发送的不同的解的个数,因此,所有相同的解决方案具有相同的x;k - 提交者id。给出一些提交信息,判断它是否符合时间顺序。

题目分析:如果数字是从0一路加上去的就是YES,如果出现的数字是已经出现过的也没关系,但是如果出现的数字是比之前记录的数字+1还大的,就NO了。

代码参考:

#include<cmath>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N = 100009;
int cnt
;
int main()
{
int n, m, c, d, k, i, x;
while(~scanf("%d", &n))
{
memset(cnt, -1, sizeof(cnt));//一开始赋值为0
bool f = true;//标记是否有非法情况出现
for(i=0; i<n; ++i)
{
scanf("%d%d", &x, &k);
if(cnt[k] == x - 1) cnt[k] = x;//如果是一路加上去的,ok
else if(cnt[k] >= x) continue;//如果之前出现过的也ok
else f = false;//但是如果都不是就no了
}
if(f == false) puts("NO");
else puts("YES");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  codeforces