NC20164. [JSOI2008]最大数MAXNUMBER
描述
输入描述
第一行两个整数,M和D,其中M表示操作的个数(M ≤ 200,000),D如上文中所述,满足D在longint内。
接下来M行,查询操作或者插入操作。
输出描述
对于每一个询问操作,输出一行。该行只有一个数,即序列中最后L个数的最大数。
示例1
输入:
5 100 A 96 Q 1 A 97 Q 1 Q 2
输出:
96 93 96
C++(clang++ 11.0.1) 解法, 执行用时: 66ms, 内存消耗: 4044K, 提交时间: 2023-01-14 15:00:34
#include<bits/stdc++.h> using namespace std; long long b[300000]; int main() { int m; long long d,n,t=0,l=0; scanf("%d%lld",&m,&d); char ch; while(m--) { getchar(); scanf("%c",&ch); scanf("%lld",&n); if(ch=='A') { b[++l]=(n+t)%d; for(int i=l-1;b[l]>b[i]&&i;i--) b[i]=b[l]; } else { printf("%lld\n",t=b[l-n+1]); } } }