Cod sursa(job #2208323)

Utilizator tibyraduRadu Tiberiu Andrei tibyradu Data 29 mai 2018 10:34:42
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <cstdio>

using namespace std;
int v[30001];
int main()
{
    freopen ("br.in", "r", stdin);
    freopen ("br.out", "w", stdout);
    int n, i, t, nr, k, x, st, dr, m;
    scanf("%d %d", &n, &t);
    for (i=1; i<=n; i++){
        scanf("%d", &nr);
        v[i]=v[i]+v[i-1]+nr;
        v[n+1]=nr;
    }
    for (i=1; i<=n; i++)
        v[n+i]=v[n+i]+ v[n+i-1];
    for (i=1; i<=t; i++){
        scanf("%d %d", &k, &x);
        st=0;
        dr=n;
        while (st<=dr)
        {
            m=(st+dr)/2;
            if (v[k+m-1]-v[k-1]>x)
                dr=m-1;
            else{
                st=m+1;
                nr=m;
            }
        }
        printf("%d", nr);
        printf("\n");
    }
    return 0;
}