Pagini recente » Cod sursa (job #18479) | Cod sursa (job #1108480) | Cod sursa (job #2378061) | Cod sursa (job #2350851) | Cod sursa (job #1910529)
#include<fstream>
using namespace std;
ifstream fin("buline.in");
ofstream fout("buline.out");
int smax, start, L, p, a, b, v[400005], n, s, u;
int main(){
fin >> n;
for( int i = 1; i <= n; i++ ){
fin >> a >> b;
v[i] = ( b == 0 ) ? -a : a;
}
for( int i = 1; i <= n; i++ ){
v[n + i] = v[i];
}
p = 1;
s = v[1];
smax = v[1];
start = 1;
L = 1;
for( int i = 2; i <= 2 * n; i++ ){
if( s < 0 || u - p + 1 > n ){
s = v[i];
p = i;
u = i;
}else{
s += v[i];
u++;
}
if( smax < s ){
smax = s;
start = p;
L = u - p + 1;
}
}
fout << smax << " " << start << " " << L << "\n";
return 0;
}