Cod sursa(job #2629656)

Utilizator segtreapMihnea Andreescu segtreap Data 22 iunie 2020 09:52:07
Problema Next Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <cstdio>
#include <iostream>
#include <algorithm>

using namespace std;

typedef long long ll;
const int N = (int) 1e6 + 7;
ll k;
string s;
int foo[N];

int main() {
  freopen ("next.in", "r", stdin);
  freopen ("next.out", "w", stdout);
  cin >> s >> k;
  ll moi = 0;
  for (int i = 0; i < (int) s.size(); i++) {
    moi = (moi * 10 + s[i] - '0') % k;
  }
  if (moi == 0) {
    cout << s << "\n";
    return 0;
  }
  reverse(s.begin(), s.end());
  for (int i = 0; i < (int) s.size(); i++) {
    foo[i] = s[i] - '0';
  }
  moi = k - moi;
  int poi = 0;
  while (moi > 0) {
    foo[poi] += moi % 10;
    int jok = poi;
    while (foo[jok] >= 10) {
      foo[jok + 1] += foo[jok] / 10;
      foo[jok] %= 10;
      jok++;
    }
    poi++;
    moi /= 10;
  }
  int matr = 0;
  for (int i = N - 1; i >= 0; i--) {
    if (foo[i]) {
      matr = 1;
    }
    if (matr) {
      cout << foo[i];
    }
  }
  cout << "\n";
  return 0;
}