Cod sursa(job #1309158)

Utilizator BlackBird_v.1.0Stephen Berg BlackBird_v.1.0 Data 5 ianuarie 2015 14:19:28
Problema Next Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <bits/stdc++.h>
using namespace std;
long long B;
int A[1000013],F[10000013],i;
string s;

void add(int A[],int B[])
 {
  int i,rest=0;
    for (i=1;i<=A[0] || i<=B[0] || rest;++i)
      {
       rest+=A[i]+B[i];
       A[i]=rest%10;
       rest/=10;
	  }
  A[0]=i-1;
 }
 
long long mod(int A[], long long B)
 {
  int i;
  long long rest(0);
   for (i=A[0];i>0;--i)
     rest=(rest*10+A[i])%B;
  return rest;
 }

void assign(string s, int A[])
{
 A[0]=s.size();
 for (int i=0;i<A[0];++i)
     A[A[0]-i]=s[i]-'0';
}

int main(void)
{
 ifstream in("next.in");
 ofstream out("next.out");
 getline(in,s); assign(s,A);
 in>>B;
 long long modulo=(B-mod(A,B))%B;
 out<<modulo<<" ";
 while(modulo)   
    {
     F[++F[0]]=modulo%10;
     modulo/=10;
	}
 add(A,F);
 for (i=A[0];i>=1;--i) out<<A[i];	
 return 0;
}