Pagini recente » Cod sursa (job #493229) | Cod sursa (job #127489) | Cod sursa (job #613262) | Cod sursa (job #203268) | Cod sursa (job #2755397)
#include <fstream>
using namespace std;
ifstream fin("buline.in");
ofstream fout("buline.out");
int n, i, start, sol1, sol2, v[200005], color[200005];
long long maxim, s;
int main(){
fin >> n;
for (i = 1; i <= n; i++)
fin >> v[i] >> color[i];
for (i = 1; i <= n; i++){
if ( color[i] == 0 )
v[i] = 0 - v[i];
}
for (i = n + 1; i <= n * 2; i++){
v[i] = v[i-n];
}
for (i = 1; i <= n * 2; i++){
if ( s + v[i] >= v[i] ){
s = s + v[i];
}else{
s = v[i];
start = i;
}
if ( i - start + 1 > n ){
s -= v[start];
start++;
}
if ( s > maxim ){
maxim = s;
sol1 = start;
sol2 = i;
}
}
fout << maxim << " " << sol1 << " " << sol2 - sol1 + 1;
return 0;
}