Pagini recente » Cod sursa (job #2890553) | Cod sursa (job #371937) | Cod sursa (job #595783)
Cod sursa(job #595783)
/***************************************************
* Author: Alexandru Palcuie
* Country: Romania
* Email: alex [dot] palcuie [at] gmail [dot] com
* Website: http://palcu.blogspot.com/
* Year: 2011
****************************************************/
#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <stack>
#include <queue>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <ctime>
#include <cstring>
using namespace std;
typedef vector<int> VI;
typedef vector<pair<int,int> > VPI;
typedef pair<int,int> PII;
typedef long long LL;
typedef unsigned long long ULL;
//Constants
const int NMAX = 50000;
//Global Vars
int n, lgMin;
int parSums[NMAX], v[NMAX];
//Structs
//Solve Functions
inline void debug_vector(int* v){
for(int i=0;i<n;++i)
printf("%d ",v[i]);
printf("\n");
}
int main()
{
#ifndef ONLINE_JUDGE
freopen("secv2.in","r",stdin);
freopen("secv2.out","w",stdout);
#endif
scanf("%d%d",&n,&lgMin);
int i,j;
for(i=0; i<n; ++i){
scanf("%d",&v[i]);
parSums[i] = parSums[i-1] + v[i];
}
//debug_vector(parSums);
int lmin = parSums[0], lmax = parSums[lgMin];
int pmin = 1, pmax = lgMin+1;
for(i=1, j=lgMin+1; j<n; ++i, ++j){
if (parSums[i]<lmin) {
lmin=parSums[i];
pmin = i;
}
if (parSums[j]>lmax){
lmax=parSums[j];
pmax = j;
}
}
printf("%d %d %d\n",pmin,pmax,lmax-lmin);
return 0;
}