Cod sursa(job #2400259)

Utilizator mihnea.anghelMihnea Anghel mihnea.anghel Data 8 aprilie 2019 16:07:29
Problema Multiplu Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <fstream>
#define DIM 2000009
using namespace std;
ifstream f("multiplu.in");
ofstream g("multiplu.out");
int p,u,ucif,nw,a, b, multiplu,i;
int v[DIM], t[DIM], r[DIM], ampus[DIM];

int cmmdc (int a, int b){
	while(b){
		int r=a%b;
		a=b;
		b=r;
	}
	return a;
}

void afis(int poz){
	if(t[poz]!=0)
		afis(t[poz]);
	g<<ampus[poz];
	return;
}

int main()
{
	f>>a>>b;
	multiplu = a/cmmdc (a,b)*b;
	v[1]=1;
	p=1; u=1;
	r[1]=1;
	t[1]=0;
	ampus[1]=1;
	while(p<=u){
		for(ucif=0; ucif<=1; ucif++){
			nw=v[p]*10+ucif; nw%=multiplu;
			if(r[nw]==0){
				v[++u]=nw;
				t[u]=p;
				r[nw]++;
				ampus[u]=ucif;
			}			
			if(nw==0){
				p=u+1;
				break;
			}
		}
		p++;
	}
	afis(u);
	return 0;
}