Cod sursa(job #1934721)

Utilizator nuuntipsuspectNu Un Tip Suspect nuuntipsuspect Data 21 martie 2017 19:09:10
Problema Secventa 2 Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <fstream>
using namespace std;
ifstream fin("secv2.in");
ofstream fout("secv2.out");
long long p_s[500001] ,n,mini[500001],ma,mic=-999999999,poz,k,ok;

void read()
{ int i,x;
    fin>>n>>k;
    mini[0]=15151000511;
    for(i=1; i<=n; i++)
{       fin>>x;
    p_s[i]=p_s[i-1]+x;
    mini[i]=min(mini[i-1],p_s[i]);
}
}
void determin()
{ int i,j;
    for(i=k; i<=n; i++)
    {
        if(p_s[i]-mini[i-k+1]>ma && p_s[i]-mini[i-k+1]>p_s[i])
            { ma=p_s[i]-mini[i];
                mic=mini[i];
                ok=1;
                poz=i;
            }
            else
                if( p_s[i]-mini[i-k+1]<=p_s[i] && p_s[i]>ma)
                    {ma=p_s[i];
                ok=2;
                poz=i;
        }
}
}
int main()
{ read();
    determin();
    if(ok==1)
    {
    for(int i=1; i<=n; i++)
        if(mini[i]==mic)
            {fout<<i+1<<" ";
            break;
            }
        }
            else
                fout<<1<<" ";

    fout<<poz<<" "<<ma;
}