zoukankan      html  css  js  c++  java
  • 南阳多校---音痴又音痴的LT

    描述

    LT最近一直在无限循环薛之谦的歌,简直都中毒了!可是呢…他的歌LT还是不会唱(其实不止他的歌LT不会唱,所有人的歌LT都不会唱…因为LT是标准的音痴)可是LT又很喜欢唱歌(所以LT不仅是音痴还是音痴)…没错,这对于LT的室友来说简直是噩梦…

        现在呢,LT有N次操作,每次操作只会有两种可能:

      I a: 表示着LT使用唱歌软件唱歌得到的分数。

      Q k: 表示着LT想知道自己得到的第k小的分数是多少。(如果没有第k小,输出-1)

     
    输入
    有多组输入(不超过20组),每组输入的第一行是一个N,表示有N次操作。(0<N<100000) 接下来的2到N+1行每行有一个操作op和一个数字num。op只可能是I或Q,0<=num<1000000
    输出
    对于每一个Q操作,输出对应的答案~(~ ̄▽ ̄)~
    样例输入
    10
    Q 123
    I 123
    I 32
    Q 1
    Q 2
    Q 2
    I 32
    Q 1
    Q 2
    Q 3
    
    样例输出
    -1
    32
    123
    123
    32
    32
    123
    
    来源
    cszdlt
    上传者
    传说中的蓝天
    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #include <cmath>
    #include<vector>
    #include<queue>
    #include<algorithm>
    
    using namespace std;
    typedef long long LL;
    
    const int maxn=500009;
    const int INF=0x3f3f3f3f;
    vector<int>G;
    int main()
    {
        int n;
        while(~scanf("%d", &n))
        {
            G.clear();
            char op[10];
            int k;
            while(n--)
            {
                scanf("%s %d", op, &k);
    
                if(op[0]=='Q')
                {
                    int len=G.size();
                    if(k>len)
                        printf("-1
    ");
                    else
                        printf("%d
    ", G[k-1]);//数组下标从0开始
                }
    
                else
                {
                    int index=upper_bound(G.begin(), G.end(), k)-G.begin();//二分查找函数
                    G.insert(G.begin()+index, k);
                }
            }
        }
        return 0;
    }
  • 相关阅读:
    Mysql基础
    Mysql基础2
    Windows CMD命令大全
    python 调试方法
    LDAP
    Linux 内核与模块调试
    Linux tee命令
    Linux kgdb命令
    OpenSSL基础知识
    Linux top命令
  • 原文地址:https://www.cnblogs.com/w-y-1/p/5794394.html
Copyright © 2011-2022 走看看