Cod sursa(job #1127898)

Utilizator alex_d01Alex Silviu alex_d01 Data 27 februarie 2014 14:15:23
Problema Secventa 2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <cstdio>
struct secv
{
    int suma, inceput, sfarsit;
};
int l = 1;
secv s[75000];
int a[50000], n;

void secvente(int k)
{
    int p = 1, q = n;
    for(int i = 1; i<=n; i++)
    {
        s[l].suma = 0;
        p = 1;
        while(p <= q-k)
        {
            s[l].inceput = p;
            s[l].sfarsit = q;
            for(int j = p; j<=q; j++)
                s[l].suma += a[j];
            p++;
            l++;
        }
        q--;
        l++;
    }
}

int fact(int x)
{
    int p = 1;
    for(int i = 1; i<=x; i++)
        p*=i;
    return p;
}

void tipar()
{
    int max = 0, posmax = 1;
    int z = fact(n);
    for(int i = 1; i<=z; i++)
        if(max < s[i].suma)
        {
            max = s[i].suma;
            posmax = i;
        }
    printf("%d %d %d",s[posmax].inceput, s[posmax].sfarsit, s[posmax].suma);
}


int main()
{
    freopen("secv2.in","r",stdin);
    freopen("secv2.out","w",stdout);
    int k;
    scanf("%d %d",&n,&k);
    for(int i = 1; i<=n; i++)
        scanf("%d ",&a[i]);
    for(int i = k; i<=n; i++)
        secvente(i);
    tipar();
    return 0;
}