Cod sursa(job #2387364)

Utilizator hrazvanHarsan Razvan hrazvan Data 24 martie 2019 15:54:28
Problema Next Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <cstdio>
#define MAXN 1000005
int n;
long long d;
char v[MAXN];

long long mod(){
  long long x = 0;
  int i;
  for(i = n - 1; i >= 0; i--){
    x = x * 10 + v[i];
    x %= d;
  }
  return x;
}

void adun(long long ad){
  int i = 0;
  while(ad > 0){
    ad += v[i];
    v[i] = ad % 10;
    ad /= 10;
    i++;
  }
  if(n < i)
    n = i;
}

int main(){
  freopen("next.in", "r", stdin);
  freopen("next.out", "w", stdout);
  char ch = fgetc(stdin);
  while(ch >= '0' && ch <= '9'){
    v[n] = ch - '0';
    ch = fgetc(stdin);
    n++;
  }
  int i, aux;
  for(i = 0; i < n - i - 1; i++){
    aux = v[i];  v[i] = v[n - i - 1];  v[n - i - 1] = aux;
  }
  scanf("%lld", &d);
  long long ad = d - mod();
  adun(ad);
  while(n > 0){
    n--;
    printf("%d", v[n]);
  }
  return 0;
}