Cod sursa(job #1842816)

Utilizator lpsasuSasu Alexandru lpsasu Data 7 ianuarie 2017 17:10:04
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <iostream>
#include <stdio.h>
using namespace std;

int c[10][4],d[10][3],n,j,i,x,p;

FILE *in , *out;

int read()
{
    char a='a',b='a',c='0';
    while(c>='0'&&c<='9')
    {
        a=b;
        b=c;
        c=fgetc(in);
    }
    if((a>='0'&&a<='9'))
    {
        return ((int)(a)-48)*10+((int)(b)-48);
    }
    else
        return ((int)(b)-48);
}

int main()
{
    in=fopen("cifra.in","r");
    out=fopen("cifra.out","w");
    for(i=0;i<10;i++)
    {
        c[i][0]=i;
        int x=i;
        for(j=1;j<4;j++)
        {
            c[i][j]=x*i%10;
            x=c[i][j];
        }
    }
    for(i=0;i<10;i++)
    {
        d[i][2]=c[i][(i-1)%4];
        d[i][1]=c[i][(i+9)%4];
        d[i][0]=(d[i][2]+d[i][1])%10;
    }

    fscanf(in,"%d",&n);
    fgetc(in);
    for(i=1;i<=n;i++)
    {
        x=read();
        p=0;
        for(int j=1;j<=9;j++)
        {
            p+=d[j][((x-j)/10)%2];
        }
        fprintf(out,"%d\n",p%10);
    }
}