Pagini recente » Cod sursa (job #546678) | Cod sursa (job #1226193) | Cod sursa (job #789258) | Cod sursa (job #2721497) | Cod sursa (job #466461)
Cod sursa(job #466461)
# include <cstdio>
typedef long long ll;
const char FIN[] = "fibo3.in", FOU[] = "fibo3.out" ;
int T;
ll fib [ 75 ] = { 1, 2 } ;
inline ll min ( ll A, ll B )
{
return ( A < B ) ? A : B ;
}
inline ll max ( ll A, ll B )
{
return ( A > B ) ? A : B ;
}
void solve ()
{
ll x_i, x_s, y_i, y_s, rez = 0;
scanf ( "%lld %lld %lld %lld", &x_i, &y_i, &x_s, &y_s ) ;
for (int i = 0; x_s + y_s >= fib[i] && i < 73 ; ++i)
if ( x_i + y_i <= fib[i] )
if ( fib[i] < min ( x_i + y_s, x_s + y_i ) )
rez += fib[i] - x_i - y_i , ++rez ;
else if ( fib[i] > max ( x_i + y_s, x_s + y_i ) )
rez += x_s + y_s - fib[i] , ++rez ;
else
rez += min ( x_s - x_i, y_s - y_i ), ++rez ;
printf ( "%lld\n", rez ) ;
}
int main()
{
freopen ( FIN, "r", stdin ) ;
freopen ( FOU, "w", stdout ) ;
for (int i = 2; i < 73 ; ++i)
fib[ i ] = fib[ i - 1 ] + fib[ i - 2 ] ;
for ( scanf ( "%d", &T ) ; T ; --T )
solve () ;
return 0;
}