Cod sursa(job #1152084)

Utilizator jordasIordache Andrei Alexandru jordas Data 24 martie 2014 15:40:15
Problema Multiplu Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.28 kb
#include <fstream>

using namespace std;

 ifstream x ("multiplu.in");
 ofstream y ("multiplu.out");

#define n 1000
 int a,b,v[1011],nrc,i,j,flag,m[15],s,p;

 void read()
   {x>>a>>b;
    a=a*b;
    b=a;
   }

 void vector()
   {i=0;
    while(b)
      {v[n-i]=b%10;
       b=b/10;
       i++;
      }
    nrc=i;
    for(j=1;j<=n;j++)
      if(v[j])
        break;
    for(i=1;i<=nrc;i++,j++)
      m[i]=v[j];
   }

 void test1()
   {flag=0;
    for(i=1;i<=n;i++)
      {if(v[i])
         flag=1;
       if(flag==1 || v[i])
         y<<v[i];
      }
    y<<'\n';
   }

 void suma()
   {for(i=0;i<=nrc;i++)
      {v[n-i]=v[n-i]+m[nrc-i];
       if(v[n-i]>9)
         {v[n-i-1]++;
          v[n-i]=v[n-i]%10;
         }
      }
   }

 void check()
  {for(i=1;i<=n;i++)
     if(v[i])
       break;
   j=i;
   p=n-j+1;
   s=0;
   for(i=j;i<=n;i++)
     s=s+v[i];
   if(s>p)     flag=1;
          else flag=0;

   //y<<s<<"-->"<<p<<"     ";
  }

 void multiplu()
   {flag=1;
    while(flag)
      {flag=0;
       suma();
       check();
       //y<<flag<<"--->";
       //for(i=j;i<=n;i++)
       //  y<<v[i];
       // y<<'\n';


      }
     test1();
   }

int main()
{read();
 vector();
 //test1();
 multiplu();
 return 0;
}