Cod sursa(job #131281)

Utilizator razvi9Jurca Razvan razvi9 Data 3 februarie 2008 15:57:41
Problema Next Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<cstdio>
#include<cstring>
const int size=500000;
long long a[size+1],d,pow,i,j,k,rest;
char s[1000002];
int main()
{freopen("next.in","r",stdin);
 freopen("next.out","w",stdout);
 gets(s);
 scanf("%lld",&d);
 for(i=strlen(s)-1,pow=1,k=0,j=size;i>=0;i--){
	 a[j]+=(s[i]-'0')*pow;
	 k++;pow=pow*10;
	 if(k==8){
		 j--;
		 k=0;
		 pow=1;}}
 if(!a[j])j++;
 for(i=j;i<=size;i++)
	 rest=(rest*100+a[j])%d;
 rest=d-rest;
 a[size]+=rest;
 i=size;
 while(a[i]>=100){a[i-1]+=a[i]/100;a[i]%=100;i--;}
 while(a[j-1]) j--;
 printf("%lld",a[j]);
 for(i=j+1;i<=size;i++)
	 if(a[i]/10)printf("%lld",a[i]);
	 else printf("0%lld",a[i]);


 return 0;}