Cod sursa(job #139871)

Utilizator razvanelu99Razvan Andrus razvanelu99 Data 20 februarie 2008 20:42:36
Problema Secventa 2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include<fstream>
using namespace std;
int main()
{
ifstream f("secv2.in");
ofstream g("secv2.out");
long k,n,v[50001],i,a,b,s,at,bt,st,j;
f>>n>>k;
f.close();
s=0;
for (i=1;i<=n;i++) f>>v[i];
for (i=1;i<=k;i++) s+=v[i];
a=1;
b=k;
while (v[i]>=0)
     {
     s+=v[i];
     i++;
     b++;
     }
while (v[a]<=0&&b-a>k-1)
     {
     s-=v[a];
     a++;
     }
st=0;
while (i<=n)
     {
     st+=v[i];
     if (st>=0)
       {
       s=s+st;
       st=0;
       b=i;
       }
     i++;
     }
while (v[a]<=0&&b-a>k-1)
     {
     s-=v[a];
     a++;
     }
i=b+1;
int p=0;
while (i<=n)
     {
     p=0;
     st=s;
     for (j=0;st>=s&&i+j<=n;j++)
	{
	for (int k=0;k<=j;k++) {st+=v[i+k];st-=v[a+k];}
	if (st>=s)
	  {
	  s=st;
	  a=a+j+1;
	  b=b+j+1;
	  i=b+1;
	  p=1;
	  break;
	  }
	st=s;
	}
     if (!p) i++;
      }
g<<a<<' '<<b<<' '<<s;
g.close();
return 0;
}