Cod sursa(job #2413310)
Utilizator | Data | 23 aprilie 2019 11:55:07 | |
---|---|---|---|
Problema | Buline | Scor | 20 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.5 kb |
#include <fstream>
using namespace std;
ifstream f("buline.in");
ofstream g("buline.out");
long long n,i,x,val,poz,ii,iii,maxi,s, v[500000];
int main()
{
f>>n;
for (i=1; i<=n; i++) {
f>>v[i]>>val;
if (!val) v[i]=-v[i];
v[i+n]=v[i];
}
poz=1; maxi=-2000000000;
for (i=1; i<=2*n; i++) {
x=v[i];
if ( x > s+x){
poz=i;
s=0;
}
s += x;
if (i-poz == n){
s-=v[poz];
poz++;
}
if ( s > maxi ){
ii=poz;
maxi=s;
iii=i;
}
}
g<<maxi<<" "<<ii<<" "<<iii-ii+1;
return 0;
}