Cod sursa(job #1781699)
| Utilizator | Data | 17 octombrie 2016 11:28:53 | |
|---|---|---|---|
| Problema | Multiplu | Scor | 60 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.68 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("multiplu.in");
ofstream g("multiplu.out");
int n,i,j,a,b,c,q[2000001],pred[2000001],rest,lq;
bool ult[2000001];
void drum(int x)
{
if(x!=1) drum(pred[x]);
g<<ult[x];
}
int main()
{
f>>a>>b;
c=a;
while(c%b) c+=a;
lq=1;
q[1]=1;
pred[1]=0;
ult[1]=1;
for(i=1;i<=lq;i++)
{
for(j=0;j<=1;j++)
{
rest=(10*q[i]+j)%c;
if(pred[rest]==0)
{
q[++lq]=rest;
pred[rest]=q[i];
ult[rest]=j;
if(rest==0) i=lq+1, j=2;
}
}
}
drum(rest);
return 0;
}
