Pagini recente » Cod sursa (job #2287915) | Cod sursa (job #75417) | Cod sursa (job #2072704) | Cod sursa (job #2873436) | Cod sursa (job #2911222)
#include <fstream>
#include <vector>
#define inf 0x3f3f3f3f
using namespace std;
ifstream cin("secv2.in");
ofstream cout("secv2.out");
int main()
{
int n, k;
cin >> n >> k;
vector<int> a(n), s(n, 0);
cin >> a[0];
for(int i = 1; i < n; i++)
{
cin >> a[i];
s[i] = s[i - 1] + a[i];
}
vector<int> dp(n, -inf), l(n, -1);
dp[k - 1] = s[k - 1];
l[k - 1] = 0;
int maxi = k - 1;
for(int i = k; i < n; i++)
{
dp[i] = s[i] - s[i - k];
l[i] = i - k + 1;
if(dp[maxi] + s[i] - s[maxi] > dp[i])
{
dp[i] = dp[maxi] + s[i] - s[maxi];
l[i] = l[maxi];
}
if(dp[maxi] - s[maxi] < dp[i] - s[i])
maxi = i;
}
maxi = 0;
for(int i = 1; i < n; i++)
if(dp[i] > dp[maxi])
maxi = i;
cout << l[maxi] + 1 << ' ' << maxi + 1 << ' ' << dp[maxi] << '\n';
}