Cod sursa(job #86858)

Utilizator fireatmyselfBogdan-Alexandru Stoica fireatmyself Data 25 septembrie 2007 20:29:09
Problema Buline Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <stdio.h>

int N, V[200200];

int main()
{
        int i, s, smax, p, l, num, n;
        freopen("buline.in", "r", stdin);
        scanf("%d",&N);
        for (i = 0; i < N; i++){scanf("%d%d", V+i, &s);
                                if(!s) V[i] = -V[i];}
        for (i = 0; i < N; i++) V[i+N] = V[i];
        for (i = s = smax = p = l = num = 0, n = N, N *= 2; i < N; i++)
        {
                 if (n==num) break;
                 if (s+V[i]<0) s = num = 0;
                 else s += V[i], num++;
                 if (s>smax) smax = s, p = i-num+1, l = num;
                 else if ((smax==s)&&(p==i)&&(l<num)) l = num;
        }
        freopen("buline.out", "w", stdout);
        printf("%d %d %d\n", smax, p+1, l);
        return 0;
}