Pagini recente » Cod sursa (job #2990458) | Cod sursa (job #1871823) | Cod sursa (job #843017) | Cod sursa (job #2620310) | Cod sursa (job #2588243)
#include <fstream>
#define NMAX 200005
using namespace std;
ifstream fin("buline.in");
ofstream fout("buline.out");
int v[2 * NMAX];
int main()
{
int n;
fin >> n;
for(int i = 1; i <= n; ++i){
int tip;
fin >> v[i] >> tip;
v[i] *= (tip == 0 ? -1 : 1);
}
for(int i = n + 1; i <= 2 * n; ++i)
v[i] = v[i - n];
int dp = 0, st, lgF, stF, maxx = -10005;
for(int i = 1; i <= 2 * n; ++i){
if(i == 1){
dp = v[1];
st = 1;
}
else {
if(dp + v[i] < v[i] || (i == 2 * st)){
dp = v[i];
st = i;
}
else dp += v[i];
if(dp > maxx){
maxx = dp;
stF = st;
lgF = i - stF + 1;
}
}
}
fout << maxx << ' ' << stF << ' ' << lgF << '\n';
return 0;
}