Cod sursa(job #227254)

Utilizator silviugSilviu-Ionut Ganceanu silviug Data 3 decembrie 2008 23:18:55
Problema A+B Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb

   # include <stdio.h>

   # define MN 1000002

int F[MN], p;

int fun(long long x)
{
  int c=0;
  while( x>1 )
  {
    x=(x&1)?(3*x+1):(x>>1), c++;
    if( x < MN && F[x] > 0 ) c+=F[x], x=1;
  }
  return (c);
}

int main()
{
//  freopen("100.in", "rt", stdin);
//  freopen("100.out", "wt", stdout);
  int k, s, u, i, j;
  
  for( i=1; i<MN; i++ ) F[i]=fun(i);

  while( scanf("%d %d", &i, &j) == 2 )
  {
    if( j > i )
     for( k=i, s=0; k<=j; k++ )
      if( F[k] > s )
       s=F[k];
      else;
    else
     for( k=j, s=0; k<=i; k++ )
      if( F[k] > s ) s=F[k];
      
    printf("%d %d %d\n", i, j, s+1);
  }  
  return 0;
}