#include <bits/stdc++.h>
using namespace std;
#define int long long
#define OYY LLONG_MAX
#define faster ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
#define fi first
#define se second
#define FOR for(int i=1;i<=n;i++)
#define mid (start+end)/2
#define pb push_back
#define lim 500005
const int mod=1000000007;
int n,m,q;
int l[lim],r[lim],cev[lim];
map<int,int>mp;
int pre[lim];
inline void solve(){
vector<pair<int,int>> buy;
vector<pair<int,int>> tut;
for(int i=1;i<=m;i++){
pre[i]=pre[i-1]+r[i];
}
for(int i=1;i<=m;i++){
if(buy.size()==0){buy.pb({r[i],i});continue;}
int cur=0;
while(buy.size() && buy.back().fi<=r[i]){
int kac=buy.back().fi-cur;
kac=min(kac,r[i]-cur);
tut.pb({buy.back().fi-1+pre[i-1]-pre[buy.back().se],kac});
cur+=kac;
buy.pop_back();
}
if(buy.size()){
int kac=buy.back().fi-cur;
kac=min(kac,r[i]-cur);
//if(i==m)cout<<buy.back()<<" "<<cur<<" "<<cur2<<" "<<kac<<endl;
tut.pb({buy.back().fi-1+pre[i-1]-pre[buy.back().se],kac});
}
buy.pb({r[i],i});
}
sort(tut.begin(),tut.end());
int cur_cev=0;
for(auto a:tut){
cur_cev+=a.se;
//cout<<a.fi<<" "<<a.se<<endl;
}
vector<pair<int,int>> qu;
for(int i=1;i<=q;i++){
int x;cin>>x;
qu.pb({x,i});
}
sort(qu.begin(),qu.end());
int ptr=0;
for(int i=0;i<q;i++){
while(cur_cev && qu[i].fi>tut[ptr].fi){
cur_cev-=tut[ptr].se;
ptr++;
}
cev[qu[i].se]=cur_cev;
}
for(int i=1;i<=q;i++){
cout<<cev[i]<<" ";
}
cout<<'\n';
}
int32_t main(){
faster
cin>>n>>m>>q;
for(int i=1;i<=m;i++)cin>>l[i]>>r[i];
if(n>2000){
solve();
return 0;
}
vector<int> tut;
int ptr=0;
for(int i=1;i<=m;i++){
for(int j=l[i];j<=r[i];j++){
if(mp.find(j)==mp.end())mp[j]=++ptr;
else{
tut.pb(ptr-mp[j]);
mp[j]=++ptr;
}
}
}
sort(tut.begin(),tut.end());
//for(auto a:tut)cout<<a<<" ";
while(q--){
int x;cin>>x;
int ind=lower_bound(tut.begin(),tut.end(),x)-tut.begin();
cout<<tut.size()-ind<<" ";
}
cout<<'\n';
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |