zoukankan      html  css  js  c++  java
  • ural1494 Monobilliards

    Monobilliards

    Time limit: 1.0 second
    Memory limit: 64 MB
    A monobilliards table set up in a gaming house of a town N turned out to be a very profitable investment, but only till the day the famous Mr. Chichikov came to the town. Chichikov was winning again and again, and the owner was counting his losses suspecting that something was wrong. But he couldn't prove the cheating until an inspector from Petersburg arrived in the town.
    The rules of monobilliards are very simple. One has to pocket successively the balls with numbers 1, 2, …, N into the only pocket (exactly in this order). While Mr. Chichikov was playing, the inspector several times came up to the table and took out from the table's pocket the last of the pocketed balls. In the end it turned out that Chichikov had pocketed all the balls and the inspector had taken out and inspected them. The cheater claimed that he had pocketed the balls in the right order! The owner understood that this was his chance, because the inspector had to remember the order in which he had taken out the balls. But would it be so easy to prove the cheating?

    Input

    The first line contains the number of billiard balls N (1 ≤ N ≤ 100000). In the next N lines there are the numbers of the balls in the order in which the inspector took them out from the pocket.

    Output

    Output the word "Cheater" if Chichikov could not pocket all the N balls in the right order, otherwise output "Not a proof".

    Samples

    inputoutput
    2
    2
    1
    
    Not a proof
    
    
    3
    3
    1
    2
    
    Cheater
    

    Notes

    In the first sample, Chichikov could pocket the balls in the right order if the inspector took them out after Chichikov pocketed the second ball. In the second sample, Chichikov could pocket the balls in any order excepting the right one 1-2-3.
    分析:题意大概是按1,2,3...n的顺序放球,然后在任意时间检察员会取出最后一个球,问某一序列是否成立;
       优先队列模拟一下即可;
    代码:
    #include <iostream>
    #include <cstdio>
    #include <cstdlib>
    #include <cmath>
    #include <algorithm>
    #include <climits>
    #include <cstring>
    #include <string>
    #include <set>
    #include <map>
    #include <queue>
    #include <stack>
    #include <vector>
    #include <list>
    #define rep(i,m,n) for(i=m;i<=n;i++)
    #define rsp(it,s) for(set<int>::iterator it=s.begin();it!=s.end();it++)
    #define mod 1000000007
    #define inf 0x3f3f3f3f
    #define vi vector<int>
    #define pb push_back
    #define mp make_pair
    #define fi first
    #define se second
    #define ll long long
    #define pi acos(-1.0)
    const int maxn=1e5+10;
    const int dis[4][2]={{0,1},{-1,0},{0,-1},{1,0}};
    using namespace std;
    ll gcd(ll p,ll q){return q==0?p:gcd(q,p%q);}
    ll qpow(ll p,ll q){ll f=1;while(q){if(q&1)f=f*p;p=p*p;q>>=1;}return f;}
    int n,m,k,t,now;
    bool flag;
    priority_queue<int>a;
    int main()
    {
        int i,j;
        now=1;
        scanf("%d",&n);
        while(n--)
        {
            scanf("%d",&j);
            while(now<=j)a.push(now),now++;
            if(a.top()!=j)flag=true;
            else a.pop();
        }
        if(flag)puts("Cheater");
        else puts("Not a proof");
        //system("pause");
        return 0;
    }
  • 相关阅读:
    信号
    序列化数据的两种方式
    ModelForm的使用
    分页模板
    Django中间件进行用户登陆验证
    Flask 笔记一
    pipenv 使用基本命令
    git本地文件 上传 远程仓库
    service "$service" status 返回的状态
    &>/dev/null 的作用
  • 原文地址:https://www.cnblogs.com/dyzll/p/5786554.html
Copyright © 2011-2022 走看看