Cod sursa(job #618097)

Utilizator costyv87Vlad Costin costyv87 Data 15 octombrie 2011 14:01:04
Problema Cifra Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <cstdio>
#define cat(c) while (c!='\n') fscanf(f,"%c",&c);
FILE *f,*g;

typedef int huge[110];
int r,sol[110];
char c='a';
huge v;
int t,i,s,cif,j;

void inline gen() {
s=0;
for (i=1;i<=100;i++) {
    cif=1;
    for (j=1;j<=i;j++)
        cif=(cif*i)%10;
    s=(s+cif) % 10;
    sol[i]=s;
    }
sol[0]=sol[100];
}
void inline inv() {
int j,ax;

for (j=1;j<=v[0]/2;j++) {
    ax=v[j];
    v[j]=v[v[0]-j+1];
    v[v[0]-j+1]=ax;
    }

}
int divide() {
if (v[0]>1)
    return (v[v[0]-1]*10+v[v[0]]);
else
    return (v[1]);
}


int main() {
f=fopen("cifra.in","r");
g=fopen("cifra.out","w");

gen();
fscanf(f,"%d",&t);
cat(c);

for (i=1;i<=t;i++) {
    v[0]=0;
    fscanf(f,"%c",&c);

    while (c>='0' && c<='9') {
        v[++v[0]]=c-'0';
        fscanf(f,"%c",&c);
        }
    cat(c);

    r=divide();
    fprintf(g,"%d\n",sol[r]);

    }






fclose(g);
return 0;
}