Cod sursa(job #1712494)

Utilizator GabiTulbaGabi Tulba-Lecu GabiTulba Data 2 iunie 2016 22:35:06
Problema Next Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <cstdio>
#include <algorithm>
#define MAX 2000000
using namespace std;
 
typedef short int B[1000005];
B rez;
char f[MAX];
long long D,pos=0,MOD=0;
void Return(B arr, int nr)
{
	long long t=0;
      for(int i=arr[0];i>0;i--)
	  {
		t=t*10+arr[i];
		while(t>=nr)
            t-=nr;
	  }
	  MOD=t;
}
void Sum(B &s,long long  nr)
{
    long long t=nr,i=1;
	while(t>0)
	{
		t+=s[i];
		s[i]=t%10;
		t/=10;
		if(i==s[0]&&t>0)
			s[0]++;
		i++;
	}
}
int main()
{
    freopen("next.in","r",stdin);
    freopen("next.out","w",stdout);
 
    fread(f,1,MAX,stdin);
    while(f[pos]>='0'&&f[pos]<='9')
        rez[++rez[0]]=f[pos++]-'0';
	short int T;
    int i, j;
    for(i=1, j=rez[0]; i<j; i++, j--){
        T=rez[i];
        rez[i]=rez[j];
        rez[j]=T;
    }
    pos++;
    while(f[pos]>='0'&&f[pos]<='9')
        D=D*10+f[pos++]-'0';
    Return(rez,D);
	if(MOD>0)Sum(rez,D-MOD);
    for(int i=rez[0];i>0;i--)
        printf("%d",rez[i]);
    return 0;
}