Cod sursa(job #469814)

Utilizator GotenAmza Catalin Goten Data 9 iulie 2010 10:41:34
Problema Fibo3 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<fstream>
#include<iostream>
#define limit 10000000000000001ll
using namespace std;
long long f[100];
int main()
{
	int i;
	long long l,sum;
	i=2;
	f[0]=f[1]=1;
	while(f[i-2]+f[i-1]<=limit)
	{
		f[i]=f[i-1]+f[i-2];	
		++i;
	}
	int nr=i-1;
	int n;
	long long x1,x2,y1,y2;
	ifstream read ("fibo3.in");
	ofstream write ("fibo3.out");
	read>>n;
	while(n--)
	{
		long long sol=0;
		read>>x1>>y1>>x2>>y2;
		l=max(x2-x1,y2-y1);
		for(i=1;i<=nr;++i)
			if(x1+y1<=f[i]&&f[i]<=x2+y2)
			{
				sum=f[i]-x1-y1;
				if(sum<=l)
					sol+=min(sum+1,min(x2-x1+1,y2-y1+1));
				else
				{
					sum=2ll*l-sum;
					sol+=sum+1-l+min(x2-x1,y2-y1);
				}
			}
			write<<sol<<'\n';
	}
	return 0;
}