Cod sursa(job #482836)

Utilizator nandoLicker Nandor nando Data 5 septembrie 2010 17:08:04
Problema Fibo3 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <cstdio>
#include <cstdlib>
#include <algorithm>
using namespace std;

typedef long long int64;

#define MAXF 90

FILE* fin = fopen("fibo3.in", "r");
FILE* fout = fopen("fibo3.out", "w");

int64 fibo[MAXF];

inline void doTest(){
	int64 x1, y1, x2, y2, res = 0LL;

	fscanf(fin, "%lld %lld %lld %lld\n", &x1, &y1, &x2, &y2);


	for(int i = 0; i < MAXF; ++i){
		if(x1 + y1 <= fibo[i] && fibo[i] <= x2 + y2){
			res += min(x2, fibo[i] - y1) - max(x1, fibo[i] - y2) + 1LL;
		}
	}

	fprintf(fout, "%lld\n", res);
}

int main(){
	fibo[0] = 1;
	
	for(int64 a = 1, b = 1, c, i = 1; i <= MAXF; ++i){
		fibo[i] = c = a + b;
		a = b;
		b = c;
	}
	
	int n;
	fscanf(fin, "%d\n", &n);

	for(int i = 0; i < n; ++i){
		doTest();
	}

	fclose(fin);
	fclose(fout);
	return EXIT_SUCCESS;	
}