Pagini recente » Cod sursa (job #3344812) | Cod sursa (job #2668697) | Cod sursa (job #3336935) | Cod sursa (job #3355533) | Cod sursa (job #3347529)
#include <fstream>
using namespace std;
ifstream cin("buline.in");
ofstream cout("buline.out");
long long v[400005];
int main() {
int n;
cin>>n;
for (int i=1; i<=n; i++) {
int va, c;
cin >> va >> c;
if (c==0)
v[i]=-va;
else
v[i]=va;
v[i+n]=v[i];
}
long long vmax=-2e18;
int startb=1, lmax=1;
long long sum=-2e18;
int start=1, l=0;
for (int i=1; i<=2*n-1; i++) {
if (sum<0){
sum=v[i];
start=i;
l=1;
} else {
sum+=v[i];
l++;
}
if (l>n) {
sum-=v[i-n];
l--;
}
if (sum>vmax) {
vmax=sum;
if (start>n) {
startb=start-n;
}
else {
startb=start;
}
lmax=l;
}
}
cout << vmax << " " << startb << " " << lmax << "\n";
return 0;
}