zoukankan      html  css  js  c++  java
  • 牛客小白月赛22

    链接:https://ac.nowcoder.com/acm/contest/4462/A
    来源:牛客网


    时间限制:C/C++ 5秒,其他语言10秒
    空间限制:C/C++ 131072K,其他语言262144K
    64bit IO Format: %lld

    题目描述

    给出一个长度无限的数列,初始全部为零,有三种操作:

    • 增加操作:给下标为 t 的数加 c 。特别注意,如果在下标 [t−30,t+30] 内有不为零的数,增加操作无效。
    • 削减操作:让数列中下标最小的不为零数变为零。
    • 查询操作:查询数列中下标为 t 的数字是多少。

    输入描述:

    第一行包含一个整数 N,1≤N≤106,表示操作总数。
    随后 N 行,每行由两个数字或一个数字组成。
    若一行中有两个数字,分别代表增加操作的 t,c 。
    若一行中只有数字-1,执行削减操作。
    若一行中只有一个不为 -1的数字,则代表查询操作的数字 t。
    保证t,c均为非负整数且在整形范围内。

    输出描述:

    削减操作时,先输出该数字,再变为零
    若序列元素全为零,则削减操作无效,此时输出 "skipped"
    查询时,输出该位置上的数
    示例1

    输入

    7
    140 1
    120 2
    100 3
    120
    100
    -1
    100

    输出

    0
    3
    3
    0
    示例2

    输入

    4
    140 3
    -1
    140 1
    -1

    输出

    3
    1
    示例3

    输入

    3
    -1
    -1
    -1

    输出

    skipped
    skipped
    skipped
     1 #include <bits/stdc++.h>
     2 typedef long long LL;
     3 const int INF=0x3f3f3f3f;
     4 const double eps =1e-8;
     5 const int mod=1e9+7;
     6 const int maxn=1e5+10;
     7 using namespace std;
     8 
     9 map<LL,LL> mp;
    10 
    11 int main()
    12 {
    13     #ifdef DEBUG
    14     freopen("sample.txt","r",stdin);
    15     #endif
    16     
    17     int n;
    18     scanf("%d",&n);
    19     while(n--)
    20     {
    21         LL a,b;
    22         scanf("%lld",&a);
    23         if(getchar()=='
    ')
    24         {
    25             if(a==-1)
    26             {
    27                 if(mp.empty()) printf("skipped
    ");
    28                 else printf("%lld
    ",mp.begin()->second), mp.erase(mp.begin());
    29             }
    30             else
    31             {
    32                 if(mp.count(a)) printf("%lld
    ",mp[a]);
    33                 else printf("0
    ");
    34             }
    35         }
    36         else
    37         {
    38             scanf("%lld",&b);
    39             auto pos=mp.lower_bound(a-30);
    40             if(pos==mp.end() || pos->first > a+30) mp[a]+=b;
    41         }
    42     }
    43     
    44     return 0;
    45 }

    -

  • 相关阅读:
    vue-cil和webpack中本地静态图片的路径问题解决方案
    vue-cil 中的配置分析
    webpack中mainifest.js vendor.js app.js 三者的区别
    css 中可以继承的属性
    有关正则表达式的Js方法(replace)
    css 常用的几种垂直居中(包括图片)
    如何在Vue中建立全局引用或者全局命令
    删除数组中多个不连续的数组元素的正确姿势
    数据库
    代码片段
  • 原文地址:https://www.cnblogs.com/jiamian/p/12536358.html
Copyright © 2011-2022 走看看