Cod sursa(job #45297)

Utilizator drag0shSandulescu Dragos drag0sh Data 1 aprilie 2007 13:01:01
Problema Next Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.15 kb
#include <stdio.h>
#include <ctype.h>
#include <string.h>
FILE *f=fopen("next.in","r");
FILE *g=fopen("next.out","w");
long long t,b,prel;
char a[1000001];
int x;
long i;

int mod()   
{for(i=0;i<strlen(a)-1;i++) 
      t = (t * 10 +a[i]-'0') % b;   //fprintf(g,"%d ",i);
      return 0;   
}   
int main(){
fgets(a,1000000,f);    
fscanf(f,"%d",&b);
mod();i=strlen(a)-2;
t=b-t;
while (t&&i>=0)                  {
                              
                            x=t%10;//fprintf(g,"%d",x)
                            if(a[i]-'0'+x+prel>9){a[i]=(a[i]-'0'+x+prel)%10+'0';prel=1;}
                            else {a[i]=a[i]+x+prel;prel=0;}
                            
                            t=t/10;
                            i--;
                            }
long j;
for(j=i;j>=0;j--)  if(a[j]-'0'+prel>9){a[j]=(a[j]-'0'+prel)%10+'0';prel=1;}
                         else {a[j]=a[j]+prel;prel=0;break;}                            
if(prel)fprintf(g,"%i",prel) ;
                           
fprintf(g,"%s",a);
//fprintf(g,"%d",strlen(a));
//fprintf(g,"%d",a[2]-10);
    fclose(f);
    fclose(g);
    return 0;

}