Pagini recente » Cod sursa (job #2054698) | Cod sursa (job #356418) | Borderou de evaluare (job #1436789) | Cod sursa (job #718287) | Cod sursa (job #848644)
Cod sursa(job #848644)
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
ifstream in ("buline.in");
ofstream out ("buline.out");
int V[200010];
bool Viz[200010];
int main ()
{
int N, i, Sum = 0, Best, idx, L, St, Dr;
bool bila;
in >> N;
for (i = 1; i <= N; i ++){
in >> V[i] >> bila;
if (!bila)
V[i] = ~V[i] + 1;
V[N + i] = V[i];
}
Best = V[1];
for (i = 1; i <= (N << 1); i ++){
if (Viz[i])
break;
if (Sum < 0){
memset (Viz, 0, sizeof (Viz));
Sum = V[i], idx = i;
}
else{
Viz[i] = 1;
Viz[N + i] = 1;
Sum += V[i];
}
if (Sum > Best)
Best = Sum, St = idx, Dr = i;
}
out << Best << " " << St << " " << Dr - St + 1;
return 0;
}