Cod sursa(job #2393803)

Utilizator REDCRAFTPadure Damian REDCRAFT Data 1 aprilie 2019 08:50:02
Problema Next Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <cstdio>
#include <cstring>
#include <algorithm>

using namespace std;

const int NMAX=1000005;

long long rest_hn_int(int a[],long long k)
{
	int i;
	long long r;
	r=0;
	for(i=a[0];i>=1;i--)
	{
		r=r*10+a[i];
		r=r%k;
	}
	return r;
}

void h_adun(int a[],long long k)
{
    int i,tr;
    long long aux;
    for(i=1;i<=a[0];i++)
    {
        aux=a[i]+k;
        a[i]=aux%10;
        k=aux/10;
    }
}
void print(int a[])
{
    int i;
    for(i=a[0];i>=1;i--)
        printf("%d",a[i]);
    printf("\n");
}
int a[NMAX];
int main()
{
    freopen("next.in","r",stdin);
    freopen("next.out","w",stdout);
    char ch;
    int n,i,cnt=0;
    long long k,ck;
    while(scanf("%c",&ch)&&ch!='\n')
    {
        if(ch>='0'&&ch<='9')
            a[++a[0]]=ch-'0';
    }
    reverse(a+1,a+a[0]+1);
    scanf("%lld",&k);
    if(a[0]<=17)
        a[0]+=17;
    ck=rest_hn_int(a,k);
    ck=k-ck;
    h_adun(a,ck);
    while(a[a[0]]==0&&a[0]>=2)
        a[0]--;
    print(a);
    return 0;
}