Pagini recente » Cod sursa (job #2333926) | Cod sursa (job #2794045) | Cod sursa (job #499613) | Cod sursa (job #1442597) | Cod sursa (job #848666)
Cod sursa(job #848666)
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
ifstream in ("buline.in");
ofstream out ("buline.out");
int V[400010];
bool Viz[400010];
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];
St = 1;
Dr = 1;
for (i = 1; i <= (N << 1); i ++)
cout << V[i] << " ";
for (i = 1; i <= (N << 1); i ++){
if (Viz[i])
break;
if (Sum + V[i] > V[i]){
Viz[i] = 1;
Viz[N + i] = 1;
Sum += V[i];
}
else{
memset (Viz, 0, sizeof (Viz));
Sum = V[i];
Viz[i] = 1;
Viz[N + i] = 1;
idx = i;
}
//cout << Sum << " ";
if (Sum > Best)
Best = Sum, St = idx, Dr = i;
}
out << Best << " " << St << " " << Dr - St + 1;
return 0;
}