Cod sursa(job #114271)

Utilizator scvalexAlexandru Scvortov scvalex Data 13 decembrie 2007 17:28:28
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <iostream>
#include <fstream>

using namespace std;

int N(0),
	K(0);

int a[50000];
long rs[50000];
long rd[50000];

int main(int argc, char *argv[]) {
	ifstream fin("secv2.in");
	fin >> N >> K;
	for (int i(0); i < N; ++i)
		fin >> a[i];
	fin.close();

	rs[0] = a[0];
	for (int i(1); i < N; ++i)
		rs[i] = rs[i - 1] + a[i];

	int maxd(-666);
	for (int i = K - 1; i < N; ++i)
		if ((maxd == -666) || (rs[maxd] < rs[i]))
			maxd = i;

	rd[maxd] = a[maxd];
	for (int i = maxd - 1; i >= 0; --i)
		rd[i] = rd[i + 1] + a[i];

	int maxs(-666);
	for (int i = maxd - K + 1; i >= 0; --i)
		if ((maxs == -666) || (rd[maxs] < rd[i]))
			maxs = i;

	ofstream fout("secv2.out");
	fout << maxs + 1 << " " << maxd + 1 << " " << rd[maxs] << endl;
	fout.close();

	return 0;
}