Pagini recente » Cod sursa (job #176716) | Cod sursa (job #1134801) | Cod sursa (job #2719907) | Cod sursa (job #1310925) | Cod sursa (job #2394032)
#include <fstream>
#include <deque>
#include <iostream>
using namespace std;
ifstream fin("buline.in");
ofstream fout("buline.out");
int n,i,x,v[400001],sol,l,p,sum,st,dr;
int main(){
fin>>n;
sol=-100001; p=-1; l=1;
for(i=1;i<=n;i++){
fin>>v[i]>>x;
if(x==0)
v[i]=-v[i];
if(sol<v[i]){
sol=v[i];
p=i;
}
v[i+n]=v[i];
cout<<v[i]<<" ";
}
cout<<"\n";
st=1;
dr=1;
sum=v[1];
for(i=2;i<=2*n;i++){
while(dr-st>=n-1){
sum-=v[st];
st++;
}
if(v[i]>sum+v[i]){
st=i;
dr=i;
sum=v[i];
}else{
sum+=v[i];
dr++;
}
if(st>n)
break;
if(sol<sum){
sol=sum;
p=st;
l=dr-st+1;
}else
if(sol==sum && p>st){
p=st;
l=dr-st+1;
}
}
if(p>n)
p-=n;
fout<<sol<<" "<<p<<" "<<l;
return 0;
}