Cod sursa(job #268172)

Utilizator ssergiussSergiu-Ioan Ungur ssergiuss Data 28 februarie 2009 21:35:45
Problema Next Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
//#include<algorithm>
//using namespace std;
#include<stdio.h>
#include<string.h>
int n;
long long unsigned d;
short a[3000001];
void adun(){
	int i,t;
	for(i=2,a[1]=(t=a[1]+1)%10,t/=10; i<=a[0]||t; t/=10,++i)
		a[i]=(t+=a[i])%10;
	a[0]=i-1;}
long long unsigned rest(){
	int i,t;
	for(i=a[0],t=0; i; --i)
		t=(t*10+a[i])%d;
	return t;}
void solve(){
	int i,x,aux;
	char ch;
	for(scanf("%c",&ch); ch!='\n'; a[++a[0]]=ch-'0',scanf("%c",&ch));
	for(i=1,x=a[0]; i<=x; ++i,--x){
		aux=a[i];
		a[i]=a[x];
		a[x]=aux;}
	scanf("%llu",&d);
	if(!rest())
		for(i=a[0]; i; --i)
			printf("%hd",a[i]);
	else{
		for(; ; ){
			adun();
			if(!rest()){
				for(i=a[0]; i; --i)
					printf("%hd",a[i]);
				break;}}}}
int main(){
	freopen("next.in","r",stdin);
    freopen("next.out","w",stdout);
    solve();
    return 0;}