Pagini recente » Cod sursa (job #2275190) | Cod sursa (job #2615110) | Cod sursa (job #1720328) | Cod sursa (job #1041186) | Cod sursa (job #41476)
Cod sursa(job #41476)
// Strange problem
#include <cstdio>
#include <cstdlib>
const int NMAX = 1 << 18;
int N, S[NMAX], T[NMAX], L[NMAX];
void read() {
FILE *fin = fopen("buline.in", "rt");
int i, v, t;
fscanf(fin, " %d", &N);
for (i = 1; i <= N; ++i) {
fscanf(fin, " %d %d", &v, &t);
if (t == 0) v = -v;
S[i] = S[i - 1] + v;
if (T[i - 1] >= S[i])
T[i] = T[i - 1], L[i] = L[i - 1];
else
T[i] = S[i], L[i] = i;
}
fclose(fin);
}
void write() {
FILE *fout = fopen("buline.out", "wt");
int i, mx = S[1], st = 1, l = 1, aux;
for (i = 1; i <= N; ++i) {
aux = T[i - 1] + (S[N] - S[i - 1]);
if (mx < aux)
mx = aux,
st = i, l = N - i + 1 + L[i - 1];
}
fprintf(fout, "%d %d %d\n", mx, 1, 1);
fclose(fout);
}
int main() {
read();
write();
return 0;
}