zoukankan      html  css  js  c++  java
  • CodeForces

    Time Limit: 1000MS   Memory Limit: 262144KB   64bit IO Format: %I64d & %I64u

     Status

    Description

    During the "Russian Code Cup" programming competition, the testing system stores all sent solutions for each participant. We know that many participants use random numbers in their programs and are often sent several solutions with the same source code to check.

    Each participant is identified by some unique positive integer k, and each sent solution A is characterized by two numbers: x — the number of different solutions that are sent before the first solution identical to A, and k — the number of the participant, who is the author of the solution. Consequently, all identical solutions have the same x.

    It is known that the data in the testing system are stored in the chronological order, that is, if the testing system has a solution with numberx(x > 0) of the participant with number k, then the testing system has a solution with number x - 1 of the same participant stored somewhere before.

    During the competition the checking system crashed, but then the data of the submissions of all participants have been restored. Now the jury wants to verify that the recovered data is in chronological order. Help the jury to do so.

    Input

    The first line of the input contains an integer n (1 ≤ n ≤ 105) — the number of solutions. Each of the following n lines contains two integers separated by space x and k (0 ≤ x ≤ 1051 ≤ k ≤ 105) — the number of previous unique solutions and the identifier of the participant.

    Output

    A single line of the output should contain «YES» if the data is in chronological order, and «NO» otherwise.

    Sample Input

    Input
    2
    0 1
    1 1
    Output
    YES
    Input
    4
    0 1
    1 2
    1 1
    0 2
    Output
    NO
    Input
    4
    0 1
    1 1
    0 1
    0 2
    Output
    YES

    Source

    #include <iostream>
    #include <stdio.h>
    #include <stdlib.h>
    #include<string.h>
    #include<algorithm>
    #include<math.h>
    using namespace std;
    int a[100010];
    int main()
    {
        int i,n,m,x,k;
        while(cin>>n)
        {
            int flag=0;
            memset(a,-1,sizeof(a));
            for (i=0;i<n;i++)
            {
                cin>>x>>k;
                if (a[k]+1<x)
                flag=1;
                a[k]=max(a[k],x);
            }
            if (flag)
            cout<<"NO"<<endl;
            else
            cout<<"YES"<<endl;
        }
       return 0;
    }
  • 相关阅读:
    ATA/SATA/SCSI/SAS/FC总线简介
    RAID卡
    解读Gartner《2015年度新兴技术成熟度曲线报告》
    linux 下 取进程占用内存(MEM)最高的前10个进程
    网站用域名能访问,用域名IP不能访问的原因分析
    iis7下iis安全狗不能用怎么办(安装iis6兼容性)
    4M宽带一般最大的下载速度是多少?
    U盘安装操作系统
    windows7实现打印机共享的方法
    windows7系统下如何安装windows xp系统(无法识别硬盘,删除隐藏分区)
  • 原文地址:https://www.cnblogs.com/Ritchie/p/5425158.html
Copyright © 2011-2022 走看看