Cod sursa(job #2119859)
| Utilizator | Data | 1 februarie 2018 18:27:41 | |
|---|---|---|---|
| Problema | Secventa 2 | Scor | 60 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 1.09 kb |
#include <bits/stdc++.h>
std::ifstream in("secv2.in");
std::ofstream out("secv2.out");
using namespace std;
int n , k;
deque<int>d;
int main()
{ int a=1,b=k,x,sum=INT_MIN,actual=0;
int incp=1,sfp;
in >> n>>k;
for(int i =1 ; i<=n ;++i)
{
in >> x ;
if(d.size()<k)
{d.push_back(x);
actual+=x;
}
else{
if( (actual>0 and actual+x<=0) )
{d.clear();
incp=i;
d.push_back(x);
actual=x;
//daca e cazul sa il scot tot
}
else
{
d.push_back(x);
actual+=x;
if(d.size()>k&&actual-d.front()>=actual) {actual-=d.front();
d.pop_front();
++incp;
}
}
}if(actual>sum)sum=actual,b=i,a=incp;
//cout << actual << endl;
}
out << a<<" "<<b<<" "<<sum ;
return 0;
}
