Submission #101430

#TimeUsernameProblemLanguageResultExecution timeMemory
101430errorgornCake (CEOI14_cake)C++14
0 / 100
201 ms7288 KiB
#include <cstdio> #include <vector> #include <utility> #include <deque> using namespace std; typedef pair<int,int> ii; int n,d,q; int E,F; int arr[250005],top[12]; ii query[500005]; void print(){ for (int x=0;x<n;x++){ printf("%d ",arr[x]); } printf("\n"); for (int x=0;x<min(n,10);x++){ printf("%d ",top[x]); } printf("\n"); } int f(int i){ if (d==i) return 0; else{ int ans=1; ii a=ii(1000000000,-1), b=ii(1000000000,-1); if (d!=0) a=ii(arr[d-1],d-1); if (d!=n-1) b=ii(arr[d+1],d+1); if (a>b) swap(a,b); while (a.second!=i){ //printf("%d %d\n",a.second,b.second); if (a.second<d){ if (a.second!=0) a=ii(arr[a.second-1],a.second-1); else a=ii(1000000000,-1); } else{ if (a.second!=n-1) a=ii(arr[a.second+1],a.second+1); else a=ii(1000000000,-1); } if (a>b) swap(a,b); ans++; } return ans; } } int main(){ //freopen("input.txt","r",stdin); int a,b; scanf("%d%d",&n,&d); d--; for (int x=0;x<n;x++){ scanf("%d",&arr[x]); } scanf("%d",&q); for (int x=0;x<q;x++){ getchar(); if (getchar()=='E'){ scanf("%d%d",&a,&b); query[x]=(ii(a-1,b-1)); E++; } else{ scanf("%d",&a); query[x]=(ii(a-1,-1)); F++; } } for (int x=0;x<n;x++){ if (arr[x]>n-10) top[n-arr[x]]=x; } int tb=min(n,10); ii it; //print(); if (n<=10000 && q<=10000){ for (int __x=0;__x<q;__x++){ it=query[__x]; if ((it).second==-1){ //this is F printf("%d\n",f((it).first)); } else{ //this is E arr[(it).first]=arr[top[(it).second]]+1; for (int x=0;x<(it).second;x++){ arr[top[x]]++; } int _x; for (_x=(it).second;_x<n && top[_x]!=(it).first;_x++){} for (int x=_x;x>(it).second;x--){ top[x]=top[x-1]; } top[(it).second]=(it).first; //print(); } } } }

Compilation message (stderr)

cake.cpp: In function 'int main()':
cake.cpp:70:9: warning: unused variable 'tb' [-Wunused-variable]
     int tb=min(n,10);
         ^~
cake.cpp:48:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%d",&n,&d);
     ~~~~~^~~~~~~~~~~~~~
cake.cpp:51:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d",&arr[x]);
         ~~~~~^~~~~~~~~~~~~~
cake.cpp:53:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d",&q);
     ~~~~~^~~~~~~~~
cake.cpp:57:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
             scanf("%d%d",&a,&b);
             ~~~~~^~~~~~~~~~~~~~
cake.cpp:62:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
             scanf("%d",&a);
             ~~~~~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...