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