zoukankan      html  css  js  c++  java
  • Codeforces Round #344 (Div. 2) C. Report 水题

    #include<bits/stdc++.h>
    #define REP(i,a,b) for(int i=a;i<=b;i++)
    #define MS0(a) memset(a,0,sizeof(a))
    #define rep(i,a,b) for(int i=a;i>=b;i--)
    #define RI(x) scanf("%d",&x)
    #define RII(x,y) scanf("%d%d",&x,&y)
    #define RIII(x,y,z) scanf("%d%d%d",&x,&y,&z)
    #define RS(s) scanf("%s",s)
    #define lson l,m,rt<<1
    #define rson m+1,r,rt<<1|1
    #define lowbit(x) x&-x
    #define key_val ch[ch[rt][1]][0]
    
    using namespace std;
    
    typedef long long ll;
    const int maxn=2000100;
    const int INF=1e9+10;
    const double EPS=1e-10;
    const double Pi=acos(-1.0);
    
    int n,m;
    int a[maxn];
    struct Query
    {
        int op,r;
    };Query q[maxn];
    multiset<int> s;
    
    int main()
    {
        #ifndef ONLINE_JUDGE
            freopen("in.txt","r",stdin);
        #endif
        while(cin>>n>>m){
            REP(i,1,n) RI(a[i]);
            int ops=1,rs=n+1;
            REP(i,1,m) scanf("%d%d",&q[i].op,&q[i].r);
            stack<Query> stk;
            int qn=0;
            REP(i,1,m){
                while(!stk.empty()&&stk.top().r<=q[i].r) stk.pop();
                stk.push(q[i]);
            }
            qn=(int)stk.size();
            for(int i=qn;i>=1;i--) q[i]=stk.top(),stk.pop();
            s.clear();
            REP(i,1,q[1].r) s.insert(a[i]);
            multiset<int>::iterator it,it2;
            q[qn+1].r=0;q[qn+1].op=1;
            REP(i,1,qn){
                if(q[i].op==1){
                    for(int d=q[i].r;d>q[i+1].r;d--){
                        it=s.end();--it;
                        a[d]=*it;
                        s.erase(it);
                    }
                }
                else{
                    for(int d=q[i].r;d>q[i+1].r;d--){
                        it=s.begin();
                        a[d]=*it;
                        s.erase(it);
                    }
                }
            }
            REP(i,1,n) printf("%d ",a[i]);puts("");
        }
        return 0;
    }
    View Code
    没有AC不了的题,只有不努力的ACMER!
  • 相关阅读:
    XNA之3D文字
    SQL2005调用C#编写的DLL
    C#绘图工具之Rotate
    ASP.NET中的WebService
    数据库同步之复制技术
    C#之TCP消息的发送和接受
    Tsql清空表数据的两种方式truncate and delete
    Code First Migrations数据迁移方法
    MSSQLSERVER跨服务器连接
    windows下wget命令行下载工具的使用
  • 原文地址:https://www.cnblogs.com/--560/p/5242900.html
Copyright © 2011-2022 走看看