Cod sursa(job #678964)

Utilizator Lokycatalin petre Loky Data 12 februarie 2012 16:37:48
Problema Secventa 2 Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>

using namespace std;

long int i,n,a[50005],b[50005],maxim,k,v[50005],poz,p1;
bool ok;

int main()
{
    ifstream f("secv2.in");
    ofstream g("secv2.out");
    f>>n>>k;
    for (i=1;i<=n;i++)
    f>>a[i];
    b[1]=a[1];
    for (i=2;i<=n;i++) {
       if (a[i]+b[i-1]>=a[i]) b[i]=a[i]+b[i-1];
       else
       b[i]=a[i];
    }

    ok=false;
    while (ok==false) {
           maxim=0;
           for (i=1;i<=n;i++)
           if (b[i]>maxim &&v[i]==0) {maxim=b[i];poz=i;}
           v[poz]=1;
           p1=poz;
           while (b[p1]-b[p1-1]==a[p1] &&p1>1) p1--;
           if (poz-p1+1>=k) {ok=true;g<<p1<<' '<<poz<<' '<<maxim;}
    }

    f.close();
    g.close();
    return 0;
}