Mai intai trebuie sa te autentifici.
Cod sursa(job #592962)
| Utilizator | Data | 31 mai 2011 18:14:27 | |
|---|---|---|---|
| Problema | Multiplu | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.83 kb |
#include<stdio.h>
#include<queue>
#define N 2000002
using namespace std;
queue<int> q;
int a,b,cif[N],u[N];
long long c;
bool ver[N];
int cmmdc(int a,int b) {
int t;
while(b) {
t=a%b;
a=b;
b=t;
}
return a;
}
int cmmmc(int a,int b) {
return (long long)a*b/cmmdc(a,b);
}
int main() {
long long a1,a2;
freopen("multiplu.in","r",stdin);
freopen("multiplu.out","w",stdout);
scanf("%d%d",&a,&b);
c=cmmmc(a,b);
q.push(1); cif[1]=1; u[1]=0; ver[1]=true;
while(!ver[0]) {
a1=q.front();
q.pop();
a2=(a1*10)%c;
if(!ver[a2]) {
q.push(a2);
ver[a2]=true;
u[a2]=a1;
cif[a2]=0;
}
a2=(a2+1)%c;
if(!ver[a2]) {
q.push(a2);
ver[a2]=true;
u[a2]=a1;
cif[a2]=1;
}
}
a1=0;
while(a1!=1) {
printf("%d",cif[a1]);
a1=u[a1];
}
printf("1");
return 0;
}
