Pagini recente » Cod sursa (job #206589) | Cod sursa (job #172816) | Cod sursa (job #1770178) | Cod sursa (job #2225914) | Cod sursa (job #2072334)
/* ( ‘_>’) */
#include <stdio.h>
#define L 13
int v[30001];
int main() {
FILE *fin, *fout;
int n, t, i, k, x, pas, r;
fin = fopen("br.in", "r");
fscanf(fin, "%d%d", &n, &t);
for (i = 1; i <= n; i++) {
fscanf(fin, "%d", &v[i]);
v[i] += v[i - 1];
}
fseek(fin, 0, SEEK_SET);
fscanf(fin, "%d%d", &n, &t);
for (i = n + 1; i <= 2 * n; i++) {
fscanf(fin, "%d", &v[i]);
v[i] += v[i - 1];
}
fout = fopen("br.out", "w");
for (i = 1; i <= t; i++) {
fscanf(fin, "%d%d", &k, &x);
pas = 1 << L;
r = k;
while (pas != 0 && r - k + 1 <= n) {
if (r + pas <= 2 * n && v[r + pas] - v[k - 1] <= x)
r += pas;
pas >>= 1;
}
if (r - k + 1 > n)
r = k + n - 1;
if (v[r] - v[k - 1] <= x)
fprintf(fout, "%d\n", r - k + 1);
else
fprintf(fout, "0\n");
}
fclose(fout);
fclose(fin);
return 0;
}