Pagini recente » Probleme de Taietura | Cod sursa (job #1014256) | Cod sursa (job #1498742) | Cod sursa (job #1585925) | Cod sursa (job #1254336)
#include<fstream>
#include<iostream>
using namespace std;
ifstream in("buline.in");
ofstream out("buline.out");
int v[500009],n;
void citire()
{
in>>n;
int x,y;
for(int i = 1 ; i <= n ; i++){
in>>x>>y;
if(y == 0){
v[i] = -x;
}
else
v[i] = x;
}
int c = n;
for(int i = 1 ; i <= n ; i++)
v[++c] = v[i];
in.close();
}
int main()
{
citire();
int best = - 99999999,s = 1,lg = 0,sum = 0,bg = 1;
for(int i = 1 ; i < 2*n ; i++){
if(sum < 0){
s = i;
sum = v[i];
}
else
sum += v[i];
if(sum > best && i-s+1 <= n){
best = sum;
bg = s;
lg = i-s+1;
}
if(i-s+1 > n)
{
sum = 0;
s = i;
}
}
out<<best<<" ";
if(bg > n)
out<<bg-n<<" ";
else
out<<bg<<" ";
out<<lg;
return 0;
}