Cod sursa(job #408181)

Utilizator mihaionlyMihai Jiplea mihaionly Data 2 martie 2010 21:24:45
Problema Multiplu Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>

using namespace std;
ifstream f("multiplu.in");
ofstream g("multiplu.out");
#define nmax 20000001
int A,B,M;
int Q[nmax],k,pre[nmax];
bool t[nmax];
#define Q (Q-1)
int cmmdc(int x,int y)
 {
 if(y==0)
  return x;
 return cmmdc(y,x%y);
 }
void scrie(int n)
 {
 if(n==0)
  return;
 scrie(pre[n]);
 g<<t[n];
 }
void coada()
 {
 int i,x;
 Q[++k]=1;
 t[k]=1;
 for(i=1;i<=k;i++)
  {
  x=Q[i];
  Q[++k]=x*10%M;
  x*=10;
  x%=M;
  pre[k]=i;
  t[k]=0;
  if(x==0)
   {
   scrie(k);
   return;
   }
  Q[++k]=(x+1)%M;
  ++x;
  x%=M;
  pre[k]=i;
  t[k]=1;
  if(x==0)
   {
   scrie(k);
   return;
   }
  }
 }
int main()
 {
 f>>A>>B;
 M=A*B/cmmdc(A,B);
 coada();
 return 0;
 }