Pagini recente » Cod sursa (job #2105254) | Cod sursa (job #996675) | Cod sursa (job #2133778) | Cod sursa (job #1501622) | Cod sursa (job #2229722)
#include <fstream>
using namespace std;
ifstream fin ("buline.in");
ofstream fout ("buline.out");
int v[400005], n, i, b, p, l, cnt;
long long ssm, m1, m2, m3;
int main()
{
fin >> n;
for (i=1; i<=n; i++){
fin >> v[i] >> b;
if (b == 0)
v[i] = -v[i];
v[i+n] = v[i];
}
ssm = v[1];
m1 = ssm;
for (i=2; i<2*n; i++){
if (ssm < 0){
ssm = v[i];
cnt = 1;
}
else{
ssm += v[i];
cnt++;
}
if (cnt <= n){
p = i - cnt + 1;
l = cnt;
if (ssm > m1){
//fout << cnt << "\n";
m1 = ssm;
m2 = p;
m3 = l;
}
else if (ssm == m1){
if (p < m2){
m2 = p;
m3 = l;
}
else if (p == m2){
if (l < m3){
m3 = l;
}
}
}
}
}
fout << m1 << " " << m2 << " " << m3;
return 0;
}