codeforces 417B - Crash

来源:互联网 发布:65536端口 编辑:程序博客网 时间:2024/05/17 01:36

题目链接: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[N];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;}



0 0
原创粉丝点击