Cod sursa(job #811072)

Utilizator SmarandaMaria Pandele Smaranda Data 11 noiembrie 2012 14:31:52
Problema Cifra Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.16 kb
#include <cstdio>
#include <cstring>
#include <math.h>

using namespace std;

char n [130];
long a [130];
long p [130];

long u (long x) {
    long h,d;
    h = x % 4;
    x = x % 10;
    if (h == 0)
        h = 4;
    d = pow (x , h);
    return d % 10;
}

long impartire (long x [] , long imp) {
    long i , d = 0 , r;
    for (i = 1 ; i <= x [0] ; i ++) {
        d = d * 10 + x [i];
        if (d >= imp)
            break;
    }
    i ++;
    for ( ; i <= x [0] ; i ++) {
        r = d % 100;
        d = r *10 + x [i];
    }
    r = d % 100;
    return r;
}

int main () {
    long  i , s = 0 , t , f=0 , j , r;

    freopen ("cifra.in" , "r" , stdin);
    freopen ("cifra.out" , "w" , stdout);

    for (i = 1 ; i <= 100 ; i ++) {
        s = (s + u (i)) % 100;
        p [i] = s % 10;
    }
    scanf ("%ld\n" ,  &t);
    for (i = 1 ; i <= t ; i ++) {
        gets (n);
        a [0] = 0;
        f = strlen (n);
        for (j = 0 ; j <f; j ++)
            a [++a [0]] = n [j] - '0';
        r = impartire (a , 100);
        if (r == 0)
            r = 100;
        printf ("%ld\n" , p [r]);
    }
    return 0;
}