Pagini recente » Istoria paginii utilizator/ruxanda | Monitorul de evaluare | Monitorul de evaluare | Profil Andreea100 | Cod sursa (job #2116724)
#include <fstream>
using namespace std;
long long n, i, maxim, suma, sol1, p, L;
long long culoare, nr, s[400005], v[400005];
ifstream fin("buline.in");
ofstream fout("buline.out");
int main(){
fin>>n;
for(i=1;i<=n;i++){
fin>>nr>>culoare;
if(culoare == 0)
s[i] = nr*(-1);
else
s[i] = nr;
if(i!=n)
s[i+n] = s[i];
}
maxim = suma = s[1];
p = L = 1;
for(i=2;i<2*n;i++){
if(suma >= 0)
suma += s[i];
else
suma = s[i], p = i;
if(suma > maxim && i-p+1 <= n){
maxim = suma;
sol1 = p;
L = i-p+1;
if(sol1 > n)
sol1-=n;
}
if(i-p+1 == n){
suma -= s[p];
p++;
}
}
fout<<maxim<<" "<<sol1<<" "<<L;
return 0;
}