Submission
Status:
---P------
Score: 10
User: hmmm
Problemset: ความลึก
Language: cpp
Time: 0.255 second
Submitted On: 2025-03-25 11:05:12
#include<bits/stdc++.h>
using namespace std;
using pii=pair<int,int>;
int a[100005];
vector<pair<int,int>> p;
int main(){
ios::sync_with_stdio(0); cin.tie(0);
int n,m,cnt=0,chk,mx;
cin >> n >> m;
for(int i=1;i<=n;i++){
int d,r;
cin >> d >> r;
cnt+=d;
if(d==1 && chk==-1){
mx=a[cnt];
a[cnt]=0;
for(int j=1;j<=cnt;j++){
a[j]+=r;
}
a[cnt]=max(mx,a[cnt]);
}
else{
for(int j=1;j<=cnt;j++){
a[j]+=r;
}
}
chk=d;
}
for(int i=1;i<=n;i++){
p.push_back({a[i],i});
//cout << a[i] << ' ';
}
sort(p.begin(),p.end());
int z=p.size();
for(int i=1;i<=m;i++){
int x;
cin >> x;
/*
for(int j=0;j<y;j++){
if(p[j].first>=x){
cout << p[j].second << "\n";
break;
}
}
*/
pii y={x,0};
auto u=lower_bound(p.begin(),p.end(), y )-p.begin();
if(u==z) cout << "0\n";
else cout << p[u].second << '\n';
}
}