Cod sursa(job #587262)

Utilizator caen1c a e n caen1 Data 4 mai 2011 15:21:59
Problema Cifra Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 1.1 kb
/**
 * user: caen1
 * file: infoarena/cifra.c
 * date: 4 mai 2011
**/
#include <stdio.h>

#define IN "cifra.in"
#define OUT "cifra.out"
#define N 101
#define EOL '\n'

static int a[] = { // Preprocesare a ultimei cifre pentru intervalul 0 - 99
    0, 1, 5, 2, 8, 3, 9, 2, 8, 7,
    7, 8, 4, 7, 3, 8, 4, 1, 5, 4,
    4, 5, 9, 6, 2, 7, 3, 6, 2, 1,
    1, 2, 8, 1, 7, 2, 8, 5, 9, 8,
    8, 9, 3, 0, 6, 1, 7, 0, 6, 5,
    5, 6, 2, 5, 1, 6, 2, 9, 3, 2,
    2, 3, 7, 4, 0, 5, 1, 4, 0, 9,
    9, 9, 0, 6, 9, 5, 0, 6, 3, 7,
    6, 6, 7, 1, 8, 4, 9, 5, 8, 4,
    3, 3, 4, 0, 3, 9, 4, 0, 7, 1,
}, n[N];

static int read(void); // Citire numar ca sir de caractere

int main(void) {

    int t, i;

    (void) freopen(IN, "r", stdin); (void) freopen(OUT, "w", stdout);

    (void) scanf("%d", &t);
    getchar(); /* Anulare a caracterului '\n' lasat de scanf */

    while(t--) {

        i = read();

        if(i == 1) printf("%d\n", a[n[0]]);
        else printf("%d\n", a[n[i - 2] * 10 + n[i - 1]]);
    }

    return 0;
}

int read(void) {

    int i = 0, ch;

    while((ch = getchar()) != EOL) n[i++] = ch - '0';

    return i;
}