Submission

Status:

[-S][-S][-S][-S][-S][-S][-S][-S][-S][-S]

Subtask/Task Score:

{0/10}{0/10}{0/10}{0/10}{0/10}{0/10}{0/10}{0/10}{0/10}{0/10}

Score: 0

User: FakeAnutin

Problemset: รถขนส่ง

Language: cpp

Time: 0.005 second

Submitted On: 2026-10-03 12:36:50

#include <bits/stdc++.h>
using namespace std;
int a[757757];
int main(){
	int n,q; cin>>n>>q;
	int arr[10000];
	arr[0] = 0;
	int ar=0;
	for(int i=1;i<=n;i++){
		int d,l; cin>>d>>l;
		if(d == 1){
		 	for(int j=ar+1;j<=ar+l;j++){
		 		arr[j] = arr[ar] + 1;
		    }
			ar+=l;	
		}
		if(d == -1){
		 	for(int j=ar+1;j<=ar+l;j++){
		 		arr[j] = arr[ar] -1;
		    }
			ar+=l;	
		}
	}
	/*for(int i=1;i<=ar;i++){
		cout<<arr[i];
	}*/
	int mx=0;
	for(int i=1;i<=ar;i++){
		mx = max(arr[i],mx);
	}
	for(int i=0;i<=ar;i++){
		a[arr[i]]++;
	}
	
	a[mx+1] = 0;
	for(int i=mx;i>=1;i--){
		a[i] += a[i+1];
	}
	/*for(int i=1;i<=mx;i++){
		cout<<i<<" = "<<a[i]<<"\n";
	}*/
	int qq[q+5];
	for(int i=1;i<=q;i++){
		cin>>qq[i];
	}
	for(int i=1;i<=q;i++){
		int k = qq[i];
		int mp=0;
		for(int j=1;j<=mx;j++){
			if(qq[i] <= a[j]){
				mp=j;
			}else{
				break;
			}
	    }
	    cout<<mp<<"\n";
	}
}