Cod sursa(job #1522695)

Utilizator antanaAntonia Boca antana Data 11 noiembrie 2015 21:56:52
Problema Next Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <iostream>
#include<cstdio>
#include<string.h>
using namespace std;
char s[1000001];
int rez[1000000];
long long d;
int impartire(int n){
    int i=0,q=-1;
    long long c=0,a=0;
    while(c<d)
    {
        c=c*10+s[i]-'0';
        i++;
    }
    rez[++q]=c/d;
    c=c%d;
    for(i=i;i<n;i++)
    {
        c=c*10+s[i]-'0';
        rez[++q]=c/d;
        c%=d;
    }
    return q;
}
int inmultire(int n)
{
    int i,q=-1;
    long long t=0;
    for(i=n;i>=0;i--){
        s[++q]=rez[i]*d+t;
        t=s[q]/10;
        s[q]%=10;
    }
    q=n;
    while(t){
        s[++q]=t%10;
        t/=10;
    }
    t=d;
    for(i=0;i<=q;i++)
    {
        t+=s[i];
        s[i]=t%10;
        t/=10;
    }
    while(t){
        s[++q]=t%10;
        t/=10;
    }
    return q;
}
int main()
{
    freopen("next.in","r",stdin);
    freopen("next.out","w",stdout);
    int q=0,n,i;
    gets(s);
    n=strlen(s);
    scanf("%lld",&d);
    q=impartire(n);
    n=inmultire(q);
    for(i=n;i>=0;i--)
        printf("%d",s[i]);
    return 0;
}