Mai intai trebuie sa te autentifici.
Cod sursa(job #431031)
Utilizator | Data | 31 martie 2010 16:19:30 | |
---|---|---|---|
Problema | Secventa 2 | Scor | 40 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.82 kb |
#include <fstream>
using namespace std;
int N,K,s[50001],v[50001];
const int int_max = 2147483647,int_min = -2147483648;
void read_data();
void solve();
int main()
{
read_data();
solve();
return 0;
}
void read_data()
{
ifstream f("secv2.in");
f >> N >> K;
for (int i = 1 ; i <= N ; ++i)
f >> v[i];
f.close();
}
void solve()
{
ofstream g("secv2.out");
int max = int_min,first,last;
for (int i = 1 ; i <= N ; ++i)
{
s[i] = s[i - 1] + v[i];
}
int min = int_max,current = 0;
if (s[1] > max)
{
max = s[1];
first = 1;
last = K;
}
for (int i = K + 1 ; i <= N ; ++i)
{
if (s[i - K] < min)
{
min = s[i - K];
current = i - K + 1;
}
if (s[i] - min > max)
{
max = s[i] - min;
first = current;
if (!first)
first++;
last = i;
}
}
g << first << " " << last << " " << max << endl;
}