Pagini recente » Cod sursa (job #572498) | Cod sursa (job #2563770) | Cod sursa (job #1017338) | Cod sursa (job #2189406) | Cod sursa (job #2394040)
#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=-1000001; 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];
if(sol<sum){
sol=sum;
p=st;
l=dr-st+1;
}else
if(sol==sum && p>st){
p=st;
l=dr-st+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(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;
}