Cod sursa(job #83960)

Utilizator bogdanhm999Casu-Pop Bogdan bogdanhm999 Data 12 septembrie 2007 19:52:49
Problema Sarpe Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <stdio.h>
#include <string.h>

char n[1001];
long nr[2002],i,j,l,k,r;

int main(){
    freopen ("sarpe.in","r",stdin);
    freopen ("sarpe.out","w",stdout);
    
    scanf ("%s",n);
    l=strlen(n);
    if (l==1&&n[0]=='1')printf("2\n");
    
    for (i=l-1;i>=0;i--)
        for (j=l-1;j>=0;j--)
            nr[(l-i)+j]+=2*(n[j]-'0')*(n[i]-'0');
    r=0;
    for (i=1;i<=2*l-1;i++)
        if (nr[i]>=10){
           nr[i]+=r;
           r=nr[i]/10;
           nr[i]%=10;
        }
    i--;
    while(r){
             i++;
             nr[i]=r%10;
             r=r/10;
    }
    k=i;
    for (i=l-1;i>=0;i--)
        nr[l-i]-=2*(n[i]-'0');
    nr[1]+=4;
    for (i=1;i<=k;i++)
        if (nr[i]<0){nr[i]+=10;nr[i+1]--;}
    while (!nr[k])k--;
    for (i=k;i>=1;i--)
        printf("%ld",nr[i]);
    printf("\n");
    
return 0;
}