Cod sursa(job #1968081)

Utilizator RaresEGaySopterean Adrian RaresEGay Data 17 aprilie 2017 14:23:57
Problema Cifra Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.17 kb
#include <fstream>
#include <string.h>

using namespace std;

ifstream f("cifra.in");
ofstream g("cifra.out");

int v[100];
int main(){
    for(int i = 1; i < 100; ++i){
        int c = i % 10;
        if(c == 0) v[i] = v[i-1] % 10;
        else if(c == 1) v[i] = (1 + v[i-1]) % 10;
        else if(c == 2){
            int x = i % 4;
            if(x == 1) v[i] = (2 + v[i-1]) % 10;
            else if(x == 2) v[i] = (4 + v[i-1]) % 10;
            else if(x == 3) v[i] = (8 + v[i-1]) % 10;
            else v[i] = (6 + v[i-1]) % 10;
        }
        else if(c == 3){
            int x = i % 4;
            if(x == 1) v[i] = (3 + v[i-1]) % 10;
            else if(x == 2) v[i] = (9 + v[i-1]) % 10;
            else if(x == 3) v[i] = (7 + v[i-1]) % 10;
            else v[i] = (1 + v[i-1]) % 10;
        }
        else if(c == 4){
            int x = i % 2;
            if(x == 1) v[i] = (4 + v[i-1]) % 10;
            else v[i] = (6 + v[i-1]) % 10;
        }
        else if(c == 5)
            v[i] = (5 + v[i-1]) % 10;
        else if(c == 6)
            v[i] = (6 + v[i-1]) % 10;
        else if(c == 7){
            int x = i % 4;
            if(x == 1) v[i] = (7 + v[i-1]) % 10;
            else if(x == 2) v[i] = (9 + v[i-1]) % 10;
            else if(x == 3) v[i] = (3 + v[i-1]) % 10;
            else v[i] = (1 + v[i-1]) % 10;
        }
        else if(c == 8){
            int x = i % 4;
            if(x == 1) v[i] = (8 + v[i-1]) % 10;
            else if(x == 2) v[i] = (4 + v[i-1]) % 10;
            else if(x == 3) v[i] = (2 + v[i-1]) % 10;
            else v[i] = (6 + v[i-1]) % 10;
        }
        else if(c == 9){
            int x = i % 2;
            if(x == 1) v[i] = (9 + v[i-1]) % 10;
            else v[i] = (1 + v[i-1]) % 10;
        }
    }
    int p;
    f >> p;
    for(p; p >= 1; --p){
        char s[105];
        f >> s;
        int k = strlen(s);
        int cifra1, cifra2;
        if(k >= 2){
            cifra1 = s[k-2] - '0';
            cifra2 = s[k-1] - '0';
        }
        else{
            cifra1 = 0;
            cifra2 = s[k-1] - '0';
        }
        g << v[cifra1 * 10 + cifra2] << '\n';
    }
}