Submission
Status:
PPPPPPPPPP
Score: 100
User: Jokul
Problemset: ความลึก
Language: c
Time: 0.994 second
Submitted On: 2025-04-25 18:04:50
#include <stdio.h>
int main() {
int n, q, maxd = 0;
scanf("%d %d", &n, &q);
int d, l, ship[q], depth=0,sum1=0,left[n],maxl[n];
left[0]=0;
for (int i = 0; i<n; i++)
{
maxl[i]=0;
}
for (int i = 0; i<n; i++) {
scanf("%d", &d);
depth = depth+ d;
scanf("%d",&l);
if(d==1){
left[depth]=sum1;
sum1=sum1+l;
if(maxl[depth]<sum1-left[depth])
{
maxl[depth]=sum1-left[depth];
}
}
if(d==-1){
sum1=sum1+l;
if(maxl[depth]<sum1-left[depth]){
maxl[depth]=sum1-left[depth];
}
}
if (depth> maxd) {
maxd = depth;
}
}
for (int i = 0; i < q; i++) {
scanf("%d", &ship[i]);
}
for (int i = 0; i < q; i++) {
int ans = 0;
for (int j = maxd; j > 0; j--) {
if (ship[i] <= maxl[j]) {
ans = j;
break;
}
}
printf("%d\n", ans);
}
}