Pagini recente » Cod sursa (job #2276326) | Monitorul de evaluare | Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #765916)
Cod sursa(job #765916)
#include <iostream>
#include <fstream>
using namespace std;
#define nmax 1000010
ifstream f("next.in");
ofstream g("next.out");
string s;
int a[nmax];
long long d;
void citeste(){
f >> s;
f >> d;
}
void rezolva(){
for(int i=s.size()-1; i>=0; i--){
a[++a[0]] = s[i]-'0';
}
//numarul e scrie invers a[1] = ultima cifra, etc;
long long R = 0;
for(int i=a[0]; i>=1; i--){
R = (R*10+1LL*a[i]) % d;
}
long long cat = (d-R);
int t = 0;
for(int i=1; i<=a[0]; i++){
a[i] = a[i] + (cat % 10) + t;
t = a[i] / 10;
a[i] = a[i] % 10;
cat = cat / 10;
}
if (t)a[++a[0]] = t;
for(int i=a[0]; i>=1; i--){
g << a[i];
}
}
int main(){
citeste();
rezolva();
}