Pagini recente » Cod sursa (job #1166411) | Cod sursa (job #2232274) | Cod sursa (job #2367317) | Cod sursa (job #1832762) | Cod sursa (job #483227)
Cod sursa(job #483227)
#include<fstream>
#include<deque>
using namespace std;
#define oo 1<<30
ifstream f("buline.in");
ofstream g("buline.out");
int N,i,nr,col,bst,min1,beg,end,be;
int sum[400001];
deque<int>d;
int main()
{ f>>N;
for(i=1;i<=N;i++)
{ f>>nr>>col;
sum[i]=sum[i-1]+(col?nr:-nr);
}
for(i=1;i<N;i++)
sum[i+N]=sum[N]+sum[i];
d.push_back(1);
bst=-oo;
for(i=1;i<2*N;i++)
{ while(!d.empty() && sum[d.back()]>sum[i])
d.pop_back();
d.push_back(i);
if(bst<sum[i]-sum[d.front()])
bst=sum[i]-sum[d.front()] , end=i , beg=d.front()+1;
if(i-d.front()>=N)
d.pop_front();
}
g<<bst<<" "<<beg<<" "<<end-beg+1;
f.close();
g.close();
return 0;
}