# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
101463 |
2019-03-19T02:45:58 Z |
ShaneOng |
Cake (CEOI14_cake) |
C++14 |
|
216 ms |
49596 KB |
#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> ii;
int n,st,q,arr[250009],flag;
struct node{
int s,e,m,v=0;
node *l,*r;
node(int a,int b){
s=a,e=b,m=(s+e)/2;
if(s!=e){
l=new node(s,m);
r=new node(m+1,e);
v=max(l->v,r->v);
}else{
v=arr[s];
}
}
void up(int a,int b){
if(s==e&&s==a){
v=b;
return;
}
if(a<=m)
l->up(a,b);
else
r->up(a,b);
v=max(l->v,r->v);
}
int qu(int a,int b){
if(s==a&&b==e){
return v;
}
if(b<=m)
return l->qu(a,b);
if(a>m)
return r->qu(a,b);
return max(l->qu(a,m),r->qu(m+1,e));
}
int bs1(int a){
if(s==e)
return s+(v<a);
if(a>l->v)
return r->bs1(a);
return l->bs1(a);
}
int bs2(int a){
if(s==e)
return s+(v<a);
if(a>r->v)
return l->bs1(a);
return r->bs1(a);
}
}*root[2];
int main(){
scanf("%d%d",&n,&st);
priority_queue<ii,vector<ii>,greater<ii> > pq[2];
for(int x=0;x<n;x++){
scanf("%d",&arr[x]);
if(arr[x]>n-10)
pq[flag].push(ii(arr[x],x));
}
int ctr=n;
if(st>1)
root[0]=new node(0,st-2);
if(st<n)
root[1]=new node(st,n-1);
scanf("%d",&q);
for(int x=0,b,c;x<q;x++){
char a;
scanf(" %c",&a);
if(a=='E'){
scanf("%d%d",&b,&c);
if((int)pq[flag].size()==10)
pq[flag].pop();
while(!pq[flag].empty()){
ii temp=pq[flag].top();
pq[flag].pop();
if(temp.second==b-1)
continue;
if(temp.first>ctr-c+1){
temp.first++;
if(temp.second+1>st){
root[1]->up(temp.second,temp.first);
}
if(temp.second+1<st)
root[0]->up(temp.second,temp.first);
}
pq[1-flag].push(temp);
}
if(b>st)
root[1]->up(b-1,ctr-c+2);
if(b<st)
root[0]->up(b-1,ctr-c+2);
pq[1-flag].push(ii(ctr-c+2,b-1));
flag=1-flag;
ctr++;
assert((int)pq[flag].size()==min(10,n));
}else{
scanf("%d",&b);
if(b!=st){
if(b>st){
//printf("%d,%d\n",root[1]->qu(st,b-1),root[0]->bs2(root[1]->qu(st,b-1)));
int temp=-1;
if(st!=1)
temp=(root[0]->bs2(root[1]->qu(st,b-1)));
printf("%d\n",((b-1)-temp-1));
}
if(b<st){
//printf("%d,%d\n",root[0]->qu(b-1,st-2),root[1]->bs1(root[0]->qu(b-1,st-2)));
int temp=n;
if(st!=n)
temp=root[1]->bs1(root[0]->qu(b-1,st-2));
printf("%d\n",(temp-(b-1)-1));
}
}else
printf("0\n");
}
}
}
Compilation message
cake.cpp: In function 'int main()':
cake.cpp:57:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d",&n,&st);
~~~~~^~~~~~~~~~~~~~~
cake.cpp:60:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%d",&arr[x]);
~~~~~^~~~~~~~~~~~~~
cake.cpp:70:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%d",&q);
~~~~~^~~~~~~~~
cake.cpp:73:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf(" %c",&a);
~~~~~^~~~~~~~~~
cake.cpp:76:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d",&b,&c);
~~~~~^~~~~~~~~~~~~~
cake.cpp:103:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%d",&b);
~~~~~^~~~~~~~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
3 ms |
256 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Runtime error |
6 ms |
2304 KB |
Execution killed with signal 11 (could be triggered by violating memory limits) |
2 |
Runtime error |
8 ms |
2432 KB |
Execution killed with signal 11 (could be triggered by violating memory limits) |
3 |
Runtime error |
7 ms |
2448 KB |
Execution killed with signal 11 (could be triggered by violating memory limits) |
4 |
Runtime error |
9 ms |
2432 KB |
Execution killed with signal 11 (could be triggered by violating memory limits) |
5 |
Runtime error |
12 ms |
5248 KB |
Execution killed with signal 11 (could be triggered by violating memory limits) |
6 |
Runtime error |
13 ms |
5504 KB |
Execution killed with signal 11 (could be triggered by violating memory limits) |
7 |
Runtime error |
13 ms |
5376 KB |
Execution killed with signal 11 (could be triggered by violating memory limits) |
8 |
Runtime error |
13 ms |
5376 KB |
Execution killed with signal 11 (could be triggered by violating memory limits) |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
107 ms |
10872 KB |
Output isn't correct |
2 |
Runtime error |
48 ms |
20168 KB |
Execution killed with signal 11 (could be triggered by violating memory limits) |
3 |
Runtime error |
41 ms |
20088 KB |
Execution killed with signal 11 (could be triggered by violating memory limits) |
4 |
Incorrect |
3 ms |
384 KB |
Output isn't correct |
5 |
Incorrect |
160 ms |
25464 KB |
Output isn't correct |
6 |
Runtime error |
107 ms |
49544 KB |
Execution killed with signal 11 (could be triggered by violating memory limits) |
7 |
Runtime error |
97 ms |
49372 KB |
Execution killed with signal 11 (could be triggered by violating memory limits) |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Runtime error |
5 ms |
1024 KB |
Execution killed with signal 11 (could be triggered by violating memory limits) |
2 |
Runtime error |
8 ms |
1408 KB |
Execution killed with signal 11 (could be triggered by violating memory limits) |
3 |
Runtime error |
78 ms |
10416 KB |
Execution killed with signal 11 (could be triggered by violating memory limits) |
4 |
Runtime error |
24 ms |
10368 KB |
Execution killed with signal 11 (could be triggered by violating memory limits) |
5 |
Runtime error |
5 ms |
896 KB |
Execution killed with signal 11 (could be triggered by violating memory limits) |
6 |
Runtime error |
52 ms |
13432 KB |
Execution killed with signal 11 (could be triggered by violating memory limits) |
7 |
Runtime error |
12 ms |
2588 KB |
Execution killed with signal 11 (could be triggered by violating memory limits) |
8 |
Runtime error |
44 ms |
20088 KB |
Execution killed with signal 11 (could be triggered by violating memory limits) |
9 |
Runtime error |
216 ms |
49596 KB |
Execution killed with signal 11 (could be triggered by violating memory limits) |
10 |
Runtime error |
4 ms |
1024 KB |
Execution killed with signal 11 (could be triggered by violating memory limits) |
11 |
Runtime error |
19 ms |
4480 KB |
Execution killed with signal 11 (could be triggered by violating memory limits) |
12 |
Runtime error |
111 ms |
39684 KB |
Execution killed with signal 11 (could be triggered by violating memory limits) |
13 |
Runtime error |
107 ms |
49500 KB |
Execution killed with signal 11 (could be triggered by violating memory limits) |