Pagini recente » Cod sursa (job #2434455) | Cod sursa (job #1804304) | Cod sursa (job #2427346) | Cod sursa (job #57256) | Cod sursa (job #464604)
Cod sursa(job #464604)
#include <stdio.h>
#include <string.h>
int fib[2010], f1, f2;
int A[1010][1010];
void solve() {
freopen("fibo3.in", "r", stdin);
freopen("fibo3.out", "w", stdout);
int n, x1, y1, x2, y2;
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
scanf("%d %d %d %d", &x1, &y1, &x2, &y2);
int ret = A[x2][y2];
if (x1 > 0)
ret = ret - A[x1 - 1][y2];
if (y1 > 0)
ret = ret - A[x2][y1 - 1];
if (x1 > 0 && y1 > 0)
ret = ret + A[x1 - 1][y1 - 1];
printf("%d\n", ret);
}
}
int main() {
f1 = f2 = 1;
while (f2 <= 3000) {
fib[f2] = 1;
int aux = f1 + f2;
f1 = f2;
f2 = aux;
}
for (int i = 0; i <= 1000; i++)
for (int j = 0; j <= 1000; j++) {
A[i][j] = fib[i + j];
if (i > 0)
A[i][j] += A[i - 1][j];
if (j > 0)
A[i][j] += A[i][j - 1];
if (i > 0 && j > 0)
A[i][j] -= A[i - 1][j - 1];
}
solve();
return 0;
}