Submission #140944

#TimeUsernameProblemLanguageResultExecution timeMemory
140944Ruxandra985Deda (COCI17_deda)C++14
140 / 140
153 ms6840 KiB
#include <cstdio> #include <iostream> #define DIMN 200010 #define INF 2000000000 using namespace std; int sol,n; int aint[4*DIMN]; void build (int nod,int st,int dr){ int mid = (st + dr)/2; aint[nod] = INF; if (st == dr) return; build (2*nod,st,mid); build (2*nod+1,mid+1,dr); } void update (int nod,int st,int dr,int x,int y){ int mid = (st + dr)/2; if (st == dr){ aint[nod] = min(aint[nod],y); return; } if (x<=mid) update (2*nod,st,mid,x,y); else update (2*nod+1,mid+1,dr,x,y); aint[nod] = min (aint[2*nod] , aint[2*nod+1]); } void query (int nod,int st,int dr,int x,int y){ int mid = (st + dr)/2; if (sol != -1) return; if (aint[nod] > y) return; if (x<=st && dr<=n){ if (st == dr){ sol = st; return; } if (aint[2*nod]<=y) query(2*nod,st,mid,x,y); else query(2*nod+1,mid+1,dr,x,y); } else{ if (x <=mid) query(2*nod,st,mid,x,y); if (mid+1<=n) query(2*nod+1,mid+1,dr,x,y); } } int main() { //freopen ("a.in","r",stdin); //freopen ("a.out","w",stdout); int q,x,y; char c; scanf ("%d%d\n",&n,&q); build (1,1,n); for (;q;q--){ scanf ("%c",&c); scanf ("%d%d\n",&x,&y); if (c == 'M'){ update (1,1,n,y,x); } else { sol = -1; query (1,1,n,y,x); printf ("%d\n",sol); } } return 0; }

Compilation message (stderr)

deda.cpp: In function 'int main()':
deda.cpp:56:11: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf ("%d%d\n",&n,&q);
     ~~~~~~^~~~~~~~~~~~~~~~
deda.cpp:59:15: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf ("%c",&c);
         ~~~~~~^~~~~~~~~
deda.cpp:60:15: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf ("%d%d\n",&x,&y);
         ~~~~~~^~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...