Pagini recente » Cod sursa (job #3142580) | Cod sursa (job #269584) | Cod sursa (job #36361) | Cod sursa (job #2906888) | Cod sursa (job #114801)
Cod sursa(job #114801)
Utilizator |
Mircea Pasoi domino |
Data |
15 decembrie 2007 22:34:43 |
Problema |
Multiplu |
Scor |
Ascuns |
Compilator |
cpp |
Status |
done |
Runda |
|
Marime |
0.86 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 U[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 (U[Q[ql = qr = 0] = B+1] = 1; ql <= qr; ++ql)
{
c = Q[ql], a = c/B, b = c%B;
if (!c) break;
for (i = 0; i < 2; ++i)
{
aa = (a*10+i)%A;
bb = (b*10+i)%B;
cc = aa*B+bb;
if (U[cc]) continue;
U[cc] = 1;
T[cc][0] = c;
T[cc][1] = i;
Q[++qr] = cc;
}
}
trace(0);
return 0;
}