Pagini recente » Sandbox | Sandbox | Sandbox | Sandbox | Cod sursa (job #2116721)
#include <fstream>
using namespace std;
int n, i, maxim = -12000, suma, sol1, p, L=1, m, j;
int culoare, nr, s[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;
}
m = n+1;
s[m] = s[1];
for(j=1;j<=n;j++){
suma = s[j];
p = j;
for(i=j+1;i<=n+j-1;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;;
}
}
s[n+j] = s[j];
}
fout<<maxim<<" "<<sol1<<" "<<L;
return 0;
}