Submission #536031

#TimeUsernameProblemLanguageResultExecution timeMemory
536031inksamuraiOsumnjičeni (COCI21_osumnjiceni)C++17
40 / 110
1089 ms16836 KiB
#include <bits/stdc++.h> using namespace std; #define rep(i,n) for(int i=0;i<n;i++) #define rng(i,x,n) for(int i=x;i<n;i++) #define per(i,n) for(int i=n-1;i>=0;i--) #define fi first #define se second #define pb push_back #define sz(a) (int)a.size() #define vec(...) vector<__VA_ARGS__> #define _3HspL4A ios::sync_with_stdio(0),cin.tie(0) typedef long long ll; using pii=pair<int,int>; using vi=vec(int); void print(){cout<<"\n";} template<class T,class...E> void print(const T&v,const E&...u){cout<<v<<' ',print(u...);} // e using vp=vec(pii); const int inf=1e9+11; int cross(int a,int b,int c,int d){ if(c>=a and c<=b) return 1; if(a>=c and a<=d) return 1; if(d>=a and d<=b) return 1; if(b>=c and b<=d) return 1; return 0; } signed main(){ _3HspL4A; int n; cin>>n; vp a(n); rep(i,n){ cin>>a[i].fi>>a[i].se; } vi tmp; rep(i,n){ tmp.pb(a[i].fi); tmp.pb(a[i].se); } sort(tmp.begin(),tmp.end()); tmp.erase(unique(tmp.begin(),tmp.end()),tmp.end()); rep(i,n){ a[i].fi=lower_bound(tmp.begin(),tmp.end(),a[i].fi)-tmp.begin(); a[i].se=lower_bound(tmp.begin(),tmp.end(),a[i].se)-tmp.begin(); } const int m=sz(tmp); multiset<pii> mst; vi nxt(n,-1); int j=0; rep(i,n){ pii p=a[i]; nxt[i]=i+1; if(!sz(mst)){ mst.insert(p); }else{ vi c={p.fi,p.se}; while(1){ bool pok=1; for(auto v:c){ auto it=mst.lower_bound({v,-inf}); if(it!=mst.end()){ if(cross(it->fi,it->se,p.fi,p.se)) pok=0; } if(it!=mst.begin()){ it=prev(it); if(cross(it->fi,it->se,p.fi,p.se)) pok=0; } } if(pok) break; mst.erase(mst.find({a[j].fi,a[j].se})); nxt[j]=i; j=j+1; } mst.insert(p); } } rng(k,j,n){ nxt[k]=n; } int q; cin>>q; rep(_,q){ int s,t; cin>>s>>t; s-=1; int i=s; int ans=0; while(1){ if(i>=t) break; ans++; i=nxt[i]; } print(ans); } // return 0; }

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:52:12: warning: unused variable 'm' [-Wunused-variable]
   52 |  const int m=sz(tmp);
      |            ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...