Submission #1189329

#TimeUsernameProblemLanguageResultExecution timeMemory
1189329ezzzayExamination (JOI19_examination)C++20
0 / 100
3092 ms13384 KiB
#include<bits/stdc++.h> using namespace std; #define int long long #define ff first #define ss second #define pb push_back const int N=2e5+5; pair<int,int> scr[N]; int ans[N]; int bit[N]; void update(int idx, int val){ while(idx<N){ bit[idx]+=val; idx+= idx & -idx; } } int find(int idx){ if(idx<=0)return 0; int s=0; while(idx>0){ s+=bit[idx]; idx-= idx & -idx; } return s; } signed main(){ int n,q; cin>>n>>q; vector< vector<int>> pnt, qr; for(int i=1;i<=n;i++){ int a,b; cin>>a>>b; pnt.pb({a,b}); } vector<vector<int>>v; for(int i=0;i<q;i++){ int a,b,c; cin>>a>>b>>c; qr.pb({a,b,i}); } sort(qr.begin(),qr.end()); reverse(qr.begin(),qr.end()); sort(pnt.begin(),pnt.end()); int i=n-1; int k=0; for(auto p:qr){ int a=p[0],b=p[1],id=p[2]; while(i>=0 and pnt[i][0]>=a){ update(pnt[i][1],1); k++; i--; } ans[id]= k-find(b-1); } for(int i=0;i<q;i++)cout<<ans[i]<<endl;; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...