Cod sursa(job #222695)

Utilizator razvan_emPrecupas Razvan razvan_em Data 24 noiembrie 2008 17:49:54
Problema Multiplu Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.21 kb
#include <fstream>
using namespace std;
ofstream ofis("multiplu.out");
ifstream ifis("multiplu.in");
long k,lung,a,b,prod,cmmmc;
int st[60000], v[60000], up[60000], cif[60000],sol[60000];

int main()
{
    long t,m,j,c;
    ifis>>a>>b;
    if (b>a) 
    { t=a; a=b; b=t;}
    prod=a*b;
    while (b)
    { c=b; b=a%b; a=c;}
    cmmmc=prod/a;
     for (int i = 1; i <= m; i++)   
      v[i] = 0;   
  v[1] = 1;   
  st[1] = 1;   
  cif[1] = 1;   
  k = lung = 1;   
  while (st[k])   
     {   
      if (v[(st[k] * 10) % m] == 0)   
                {st[++lung] = (st[k] * 10) % m;   
                 up[lung] = k;   
                 cif[lung] = 0;   
                 v[st[lung]] = 1;   
                }   
      if (v[(st[k] * 10 + 1) % m] == 0)   
                {   
                 st[++lung] = (st[k] * 10 + 1) % m;   
                 up[lung] = k;   
                 cif[lung] = 1;   
                 v[st[lung]] = 1;   
                }   
     k++;   
     }      
     
  int i = 0;   
  while (k > 0)   
     {i++;   
      sol[i] = cif[k];   
      k = up[k];   
     }  
     for (j=i; j>=1; j--)
     ofis<<sol[j]<<"\n";
     return 0;
}