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';
	}
}