Cod sursa(job #2177997)

Utilizator DimaTCDima Trubca DimaTC Data 18 martie 2018 23:05:24
Problema Next Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include<bits/stdc++.h>
#define ll long long
using namespace std;


ll mod(int a[], ll b) {
	ll t=0;
	for (int i=a[0]; i>=1; i--) { 
		t=(t*10+a[i])%b;
	}
	return t;
}

void add(int a[], int b) {
	int t=b,i;
	for (i=1; i<=a[0] || t; i++, t/=10) {
		a[i]=(t=t+a[i])%10;
	}
	a[0]=max(a[0],i-1);
}

string s;
int a[1000100];
ll d,b;

int main() {
	ifstream cin("next.in");
	ofstream cout("next.out");
	getline(cin,s);
	
	for (int i=0; i<s.size();i++) {
		a[i+1]=s[s.size()-1-i]-'0';
	}
	a[0]=s.size();
	cin>>d;
	b=mod(a,d);
	
	add(a,d-b);
	for (int i=a[0]; i>=1; i--) cout<<a[i];
	
	return 0;
}