Pagini recente » Cod sursa (job #2058876) | Cod sursa (job #2015289) | Cod sursa (job #2227814) | Cod sursa (job #117963) | Cod sursa (job #2228525)
#include <fstream>
using namespace std;
ifstream fin ("buline.in");
ofstream fout ("buline.out");
int n, i, a, v[400005];
void ssm ()
{
int i, i1, i2, l = 0, cnt = 1;
long long sum, m;
sum = m = v[1];
for (i=2; i<2*n; i++){
if (sum < 0){
sum = v[i];
cnt = 1;
}
else{
sum += v[i];
cnt++;
}
if (sum > m){
if (l + 1 > n)
break;
i1 = i - cnt + 1;
i2 = i;
l = cnt;
m = sum;
}
else if (sum == m){
if (i - cnt + 1 < i1){
i1 = i - cnt + 1;
}
else if (i - cnt + 1 == i1){
if (i - i1 + 1 < l){
l = i - i1 + 1;
}
}
}
}
fout << m << " " << i1 << " " << l;
}
int main()
{
fin >> n;
for (i=1; i<=n; i++){
fin >> v[i] >> a;
if (a == 0)
v[i] = -v[i];
v[i+n] = v[i];
}
ssm();
return 0;
}