QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#601680 | #5278. Mex and Cards | huaxiamengjin# | WA | 1ms | 9840kb | C++14 | 1.1kb | 2024-09-30 10:49:51 | 2024-09-30 10:49:51 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,a[200100];
int mn[1001001],s[1001001],ls[1001001];
void build(int p,int l,int r,int pre){
if(l==r)return mn[p]=a[l],ls[p]=a[l],s[p]=0,void();
int mid=l+r>>1;
build(p<<1,l,mid,pre);build(p<<1|1,mid+1,r,min(mn[p<<1],pre));
mn[p]=min(mn[p<<1],mn[p<<1|1]);
ls[p]=ls[p<<1];
s[p]=s[p<<1]+s[p<<1|1]+(mid+1)*max(mn[p<<1]-ls[p<<1|1],0ll);
}
void push(int p,int l,int r,int x,int pre){
if(l==r)return mn[p]=a[l],ls[p]=a[l],s[p]=0,void();
int mid=l+r>>1;
if(x<=mid)push(p<<1,l,mid,x,pre);
else push(p<<1|1,mid+1,r,x,min(pre,mn[p<<1]));
mn[p]=min(mn[p<<1],mn[p<<1|1]);
ls[p]=ls[p<<1];
s[p]=s[p<<1]+s[p<<1|1]+(mid+1)*max(mn[p<<1]-ls[p<<1|1],0ll);
}
signed main(){
cin>>n;
for (int i=0;i<n;i++)
cin>>a[i];
int q;
cin>>q;
build(1,0,n-1,1e9);
cout<<s[1]+mn[1]*n<<"\n";
int op,x;
while(q--){
cin>>op;
if(op==1){
cin>>x;
a[x]++;
push(1,0,n-1,x,1e9);
// cout<<mn[1]<<" "<<ls[1]<<" "<<s[1]<<"\n";
cout<<s[1]+mn[1]*n<<"\n";
}else {
cin>>x;
a[x]--;
push(1,0,n-1,x,1e9);
cout<<s[1]+mn[1]*n<<"\n";
}
}
}
詳細信息
Test #1:
score: 100
Accepted
time: 0ms
memory: 9784kb
input:
5 2 1 3 0 2 6 1 0 1 1 2 4 1 3 2 1 2 1
output:
4 5 7 7 9 7 3
result:
ok 7 numbers
Test #2:
score: 0
Accepted
time: 0ms
memory: 9840kb
input:
1 0 0
output:
0
result:
ok 1 number(s): "0"
Test #3:
score: 0
Accepted
time: 1ms
memory: 9784kb
input:
10 3 8 1 4 10 3 10 9 7 10 20 2 5 1 4 1 2 1 4 1 3 1 3 1 0 2 8 1 5 1 4 1 0 1 3 1 8 1 6 1 4 1 1 1 5 1 9 1 6 2 7
output:
14 14 14 22 22 22 22 24 24 24 24 26 26 26 26 26 26 26 26 26 26
result:
ok 21 numbers
Test #4:
score: -100
Wrong Answer
time: 1ms
memory: 7760kb
input:
10 9 8 7 5 5 4 3 2 1 1 20 2 4 1 8 2 6 1 2 1 2 2 5 2 2 1 0 1 6 1 6 2 9 1 2 2 7 2 8 2 3 1 9 1 7 1 4 2 6 1 7
output:
45 44 45 44 45 45 44 44 45 46 46 45 45 52 43 42 43 44 44 44 45
result:
wrong answer 14th numbers differ - expected: '43', found: '52'