Submission #638698

#TimeUsernameProblemLanguageResultExecution timeMemory
638698ggohWall (IOI14_wall)C++14
Compilation error
0 ms0 KiB
#include<bits/stdc++.h> using namespace std; typedef long long lint; int n,m,op,x,y,z,B=1; int h[1<<22],d[1<<22],u[1<<22]; void pushhard(int num) { h[num*2]=h[num*2+1]=h[num]; u[num*2]=u[num*2+1]=u[num]; d[num*2]=d[num*2+1]=d[num]; } void pushsoft(int num) { int t=num*2; if(h[t]==0) { h[t]=3;u[t]=u[num];d[t]=d[num]; } else if(h[t]==1) { u[t]=max(u[t],u[num]); if(u[t]>d[num]){ h[t]=2;d[t]=d[num]; } } else if(h[t]==2) { d[t]=min(d[t],d[num]); if(d[t]<u[num]){ h[t]=1;u[t]=u[num]; } } else{ if(d[t]<u[num]){ h[t]=1;u[t]=u[num]; } else if(d[num]<u[t]){ h[t]=2;d[t]=d[num]; } else{ u[t]=max(u[t],u[num]); d[t]=min(d[t],d[num]); } } t=num*2+1; if(h[t]==0) { h[t]=3;u[t]=u[num];d[t]=d[num]; } else if(h[t]==1) { u[t]=max(u[t],u[num]); if(u[t]>d[num]){ h[t]=2;d[t]=d[num]; } } else if(h[t]==2) { d[t]=min(d[t],d[num]); if(d[t]<u[num]){ h[t]=1;u[t]=u[num]; } } else{ if(d[t]<u[num]){ h[t]=1;u[t]=u[num]; } else if(d[num]<u[t]){ h[t]=2;d[t]=d[num]; } else{ u[t]=max(u[t],u[num]); d[t]=min(d[t],d[num]); } } } void push(int num){ if(h[num]==1||h[num]==2)pushhard(num); if(h[num]==3)pushsoft(num); h[num]=0; } void update(int num,int s,int e,int l,int r,int op,int v) { if(l>e||s>r)return ; if(l<=s&&e<=r) { if(h[num]==0) { u[num]=-1e9; d[num]=1e9; if(op==1)u[num]=v; else d[num]=v; h[num]=3; } else if(h[num]==1) { if(op==1) { u[num]=max(u[num],v); } else { if(u[num]>v) { d[num]=v; h[num]=2; } } } else if(h[num]==2) { if(op==2) { d[num]=min(d[num],v); } else { if(d[num]<v) { u[num]=v; h[num]=1; } } } else { if(op==1) { u[num]=max(u[num],v); if(u[num]>d[num])h[num]=1; } else{ d[num]=min(d[num],v); if(u[num]>d[num])h[num]=2; } } return ; } push(num); update(num*2,s,(s+e)/2,l,r,op,v); update(num*2+1,(s+e)/2+1,e,l,r,op,v); } int main() { scanf("%d%d",&n,&m); while(B<n)B*=2; h[1]=1; u[1]=0; for(int i=0;i<m;i++) { scanf("%d%d%d%d",&op,&x,&y,&z); update(1,0,B-1,x,y,op,z); } for(int i=1;i<B;i++) { push(i); } for(int i=0;i<n;i++) { if(h[B+i]==1)printf("%d\n",u[B+i]); else printf("%d\n",d[B+i]); } }

Compilation message (stderr)

wall.cpp: In function 'int main()':
wall.cpp:147:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
  147 |     scanf("%d%d",&n,&m);
      |     ~~~~~^~~~~~~~~~~~~~
wall.cpp:153:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
  153 |         scanf("%d%d%d%d",&op,&x,&y,&z);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/bin/ld: /tmp/ccXKDWn3.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/cceSrXf7.o:wall.cpp:(.text.startup+0x0): first defined here
/usr/bin/ld: /tmp/ccXKDWn3.o: in function `main':
grader.cpp:(.text.startup+0x133): undefined reference to `buildWall(int, int, int*, int*, int*, int*, int*)'
collect2: error: ld returned 1 exit status