Pagini recente » Cod sursa (job #1328129) | Cod sursa (job #2208166) | Cod sursa (job #716299) | Cod sursa (job #97815) | Cod sursa (job #848679)
Cod sursa(job #848679)
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
ifstream in ("buline.in");
ofstream out ("buline.out");
int V[400010];
int main ()
{
int N, i, Sum = 0, Best, idx = 1, 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];
idx = 1;
St = 1;
Dr = 1;
for (i = 1; i <= (N << 1); i ++)
cout << V[i] << " ";
for (i = 1; i <= (N << 1); i ++){
if (i > N && i - N == idx)
break;
if (Sum + V[i] > V[i])
Sum += V[i];
else{
if (Sum > Best)
Best = Sum, St = idx, Dr = i;
Sum = V[i];
idx = i;
}
cout << Sum << " ";
if (Sum > Best)
Best = Sum, St = idx, Dr = i;
}
out << Best << " " << St << " " << Dr - St + 1;
return 0;
}