Pagini recente » Cod sursa (job #3231589) | Cod sursa (job #36203) | Cod sursa (job #3247173) | Cod sursa (job #36388) | Cod sursa (job #114800)
Cod sursa(job #114800)
Utilizator |
Mircea Pasoi domino |
Data |
15 decembrie 2007 22:32:05 |
Problema |
Multiplu |
Scor |
Ascuns |
Compilator |
cpp |
Status |
done |
Runda |
|
Marime |
0.84 kb |
#include <stdio.h>
#define MAX_AB 2000005
#define FIN "multiplu.in"
#define FOUT "multiplu.out"
int A, B, T[MAX_AB][2], Q[MAX_AB];
char D[MAX_AB];
void trace(int c)
{
if (c == B+1) { printf("1"); return; }
trace(T[c][0]);
printf("%d", T[c][1]);
}
int main(void)
{
int i, a, b, c, aa, bb, cc, ql, qr;
freopen(FIN, "r", stdin);
freopen(FOUT, "w", stdout);
scanf("%d %d", &A, &B);
for (D[Q[ql = qr = 0] = B+1] = 1; ql <= qr; ++ql)
{
c = Q[ql], a = c/B, b = c%B;
for (i = 0; i < 2; ++i)
{
aa = (a*10+i)%A;
bb = (b*10+i)%B;
cc = aa*B+bb;
if (D[cc]) continue;
D[cc] = D[c]+1;
T[cc][0] = c;
T[cc][1] = i;
Q[++qr] = cc;
}
}
trace(0);
return 0;
}