Pagini recente » Cod sursa (job #627793) | Cod sursa (job #708160) | Cod sursa (job #673110) | Cod sursa (job #2084721) | Cod sursa (job #2115923)
#include <bits/stdc++.h>
using namespace std;
ifstream in("buline.in");
ofstream out("buline.out");
int n, culoare, minim, poz_minim, maxim, poz_f, poz;
int v[400005];
int main()
{
in>>n;
for( int i = 1; i <= n; i++ )
{
in>>v[i]>>culoare;
if( culoare == 0 )
v[i] = (-1)*v[i];
if( minim > v[i] )
{
minim = v[i];
poz_minim = i;
}
}
for( int i = 1; i < n; i++ )
v[n + i] = v[i];
while( v[poz_minim] < 0 )
poz_minim++;
maxim = v[poz_minim];
poz_f = poz = poz_minim;
for( int i = poz_minim + 1; i <= n + poz_minim - 2; i++ )
if( v[i] < v[i] + maxim )
maxim = v[i] + maxim, poz_f++;
else
maxim = v[i], poz = poz_f = i;
out<<maxim<<" "<<poz<<" "<<poz_f - poz + 1;
return 0;
}