10492 | 2024-04-03 13:36:28 | 111 | Branch Cutting | cpp17 | Hibás válasz 8/100 | 344ms | 23844 KiB |
#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int N,Q;
cin>>N>>Q;
vector<int>v(N),n(N),p(N);
for(int i=0;i<N;i++){
cin>>v[i];
n[i]=i==N-1?0:i+1;
p[i]=i==0?N-1:i-1;
}
int s=min_element(v.begin(),v.end())-v.begin();
map<int,int>z;
for(int i=0,j=0;i<N;i++){
if(v[s]<v[n[s]]){
j++;
}
else if(j){
z.emplace((s-j+N)%N,s);
j=0;
}
s=n[s];
}
int ans=0;
for(auto[x,y]:z){
ans+=((y-x+N)%N+1)/2;
}
cout<<ans<<' ';
for(int i=0;i<Q;i++){
int x;
cin>>x>>v[x];
if(!z.empty()){
auto t=z.upper_bound(x);
t=t==z.begin()?prev(z.end()):prev(t);
int s=t->first,e=t->second;
if(x>=s&&x<=e||x>=s&&s>=e||e>=x&&s>e){
z.erase(t);
ans-=((e-s+N)%N+1)/2;
if(x==s&&x==e){
}
else if(x==s){
s=n[s];
ans+=((e-s+N)%N+1)/2;
z.emplace(s,e);
}
else if(x==e){
e=p[e];
ans+=((e-s+N)%N+1)/2;
z.emplace(s,e);
}
else{
ans+=((p[x]-s+N)%N+1)/2;
z.emplace(s,p[x]);
ans+=((e-n[x]+N)%N+1)/2;
z.emplace(n[x],e);
}
}
}
int s=v[p[x]]<v[x]?p[x]:x;
int e=v[x]<v[n[x]]?n[x]:x;
if(z.empty()){
if(s!=e){
ans+=((e-s+N)%N+1)/2;
z.emplace(s,e);
}
}
else{
auto t=z.upper_bound(x);
if(t==z.end()){
t=z.begin();
}
if(t->first==e){
auto[ss,ee]=*t;
t=z.erase(t);
ans-=((ee-ss+N)%N+1)/2;
e=ee;
}
if(!z.empty()){
t=t==z.begin()?prev(z.end()):prev(t);
if(t->second==s){
auto[ss,ee]=*t;
t=z.erase(t);
ans-=((ee-ss+N)%N+1)/2;
s=ss;
}
}
if(s!=e){
ans+=((e-s+N)%N+1)/2;
z.emplace(s,e);
}
}
cout<<ans<<' ';
}
cout<<'\n';
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
subtask1 | 0/0 | ||||||
1 | Elfogadva | 3ms | 1824 KiB | ||||
2 | Elfogadva | 3ms | 2056 KiB | ||||
subtask2 | 8/8 | ||||||
3 | Elfogadva | 3ms | 2292 KiB | ||||
4 | Elfogadva | 3ms | 2496 KiB | ||||
5 | Elfogadva | 3ms | 2572 KiB | ||||
6 | Elfogadva | 3ms | 2568 KiB | ||||
7 | Elfogadva | 3ms | 2676 KiB | ||||
8 | Elfogadva | 3ms | 2888 KiB | ||||
9 | Elfogadva | 3ms | 3116 KiB | ||||
10 | Elfogadva | 3ms | 3324 KiB | ||||
11 | Elfogadva | 3ms | 3528 KiB | ||||
subtask3 | 0/15 | ||||||
12 | Hibás válasz | 280ms | 23504 KiB | ||||
13 | Hibás válasz | 287ms | 23076 KiB | ||||
14 | Hibás válasz | 270ms | 22580 KiB | ||||
15 | Hibás válasz | 282ms | 23576 KiB | ||||
16 | Hibás válasz | 280ms | 23456 KiB | ||||
17 | Hibás válasz | 236ms | 21288 KiB | ||||
18 | Hibás válasz | 236ms | 21156 KiB | ||||
subtask4 | 0/10 | ||||||
19 | Elfogadva | 3ms | 4056 KiB | ||||
20 | Elfogadva | 3ms | 4048 KiB | ||||
21 | Elfogadva | 4ms | 4204 KiB | ||||
22 | Hibás válasz | 4ms | 4260 KiB | ||||
23 | Hibás válasz | 4ms | 4576 KiB | ||||
24 | Elfogadva | 4ms | 4688 KiB | ||||
25 | Elfogadva | 4ms | 5008 KiB | ||||
26 | Hibás válasz | 4ms | 4924 KiB | ||||
subtask5 | 0/25 | ||||||
27 | Elfogadva | 4ms | 5132 KiB | ||||
28 | Elfogadva | 3ms | 5356 KiB | ||||
29 | Hibás válasz | 12ms | 5524 KiB | ||||
30 | Hibás válasz | 12ms | 5696 KiB | ||||
31 | Hibás válasz | 12ms | 5808 KiB | ||||
32 | Elfogadva | 9ms | 5552 KiB | ||||
33 | Elfogadva | 10ms | 5424 KiB | ||||
34 | Hibás válasz | 12ms | 5732 KiB | ||||
subtask6 | 0/42 | ||||||
35 | Elfogadva | 35ms | 14296 KiB | ||||
36 | Elfogadva | 20ms | 14296 KiB | ||||
37 | Hibás válasz | 344ms | 21028 KiB | ||||
38 | Hibás válasz | 312ms | 17820 KiB | ||||
39 | Hibás válasz | 335ms | 21076 KiB | ||||
40 | Elfogadva | 223ms | 14424 KiB | ||||
41 | Elfogadva | 219ms | 14408 KiB | ||||
42 | Elfogadva | 222ms | 14408 KiB | ||||
43 | Hibás válasz | 321ms | 23844 KiB |