Cod sursa(job #1786923)

Utilizator andreistanStan Andrei andreistan Data 23 octombrie 2016 20:54:21
Problema Next Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;

const int CMAX=1000002;

ifstream f("next.in");
ofstream g("next.out");
char N[CMAX];
int A[CMAX];
int D;

void copiere(int A[], char N[], int lg)
{
    A[0]=lg;
    int i=1,j=lg-1;
    for(;j>=0;)
        A[i++]=N[j--]-48;
}

int mod(int A[], int B)
{
      int i, t = 0;
      for (i = A[0]; i > 0; i--)
              t = (t * 10 + A[i]) % B;
      return t;
}

void cauta()
{
    while(true)
    {
        if(mod(A,D)==0) return;
        A[1]++;
        int p=1;
        while(A[p]==10)
        {
            A[p]=0;
            A[++p]++;
        }
    }
}

int main()
{

    f.getline(N,CMAX);
    copiere(A, N, strlen(N));
    f>>D;
    cauta();
    for(int i=A[0];i>=1;i--)
        g<<A[i];
    return 0;
}