Cod sursa(job #710040)

Utilizator alexalghisiAlghisi Alessandro Paolo alexalghisi Data 8 martie 2012 20:43:42
Problema Secventa 2 Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <iostream>
#include <string>
#include <cstdio>
using namespace std;

string x;
int dp[50005];

int main()
{
	int n,k,ind=0,ii=0,jj=0,maxim=-1<<30;
	freopen("secv2.in","r", stdin);
	freopen("secv2.out","w", stdout);

	scanf("%d %d\n",&n,&k);
	getline(cin,x);
	for(int i=0;i<x.size();i++)
	{
		if(isdigit(x[i]) || x[i]=='-')
		{
			int semn=1;
			if(x[i]=='-')
			{
				semn*=-1;
				i++;
			}
				int nr=0;
			while(isdigit(x[i]))
			{
				nr=nr*10+x[i]-'0';
				i++;
			}
			nr*=semn;
			dp[++ind]=dp[ind-1]+nr;
			
			if(ind>=k)
			{
				for(int j=ind-k;j>=1;j--)
				{
					if(dp[ind]-dp[j]>maxim)
					{
						ii=ind;
						maxim=dp[ind]-dp[j];
						jj=j;
					}
				}
					
			}
			
		}
	}
	printf("%d %d %d",jj+1,ii,maxim);
	return 0;
}