Nu aveti permisiuni pentru a descarca fisierul grader_test9.in
Cod sursa(job #1489738)
Utilizator | Data | 21 septembrie 2015 22:25:37 | |
---|---|---|---|
Problema | Cifra | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.53 kb |
#include <iostream>
#include <limits.h>
#include <cmath>
#include <string>
#include <stdio.h>
#include <algorithm>
#include <stdlib.h>
#include <vector>
#include <stack>
#include <map>
#include <fstream>
#include <list>
#include <queue>
#include <iomanip>
#include <deque>
#include <set>
using namespace std;
ifstream f("cifra.in");
ofstream g("cifra.out");
#define cin f
#define cout g
int rep[11] = {0, 1, 4, 4, 2, 1, 1, 4, 2, 2};
int repp[11][11] =
{
{0,0,0,0,0,0,0,0,0,0},
{0,1,0,0,0,0,0,0,0,0},
{6,2,4,8,6,0,0,0,0,0},
{1,3,9,7,1,0,0,0,0,0},
{0,4,6,0,0,0,0,0,0,0},
{0,5,0,0,0,0,0,0,0,0},
{0,6,0,0,0,0,0,0,0,0},
{1,7,9,3,1,0,0,0,0,0},
{0,8,6,0,0,0,0,0,0,0},
{0,9,1,0,0,0,0,0,0,0},
};
int Solve(int uc, string s)
{
if (rep[uc] == 1)
return uc;
if (rep[uc] == 2)
if (uc % 2 == 1)
return uc;
else
return ((uc*uc)%10);
if (rep[uc] == 4)
{
if (s.size() == 1)
return repp[uc][uc % rep[uc]];
else
{
int nr = s[s.size()-2] - '0';
nr *= 10;
nr += s[s.size()-1] - '0';
return repp[uc][nr % rep[uc]];
}
}
}
int main()
{
int n,ans = 0;
cin >> n;
for(int i = 1; i <= n; i++)
{
string s;
cin >> s;
int ultima_c = s[s.size()-1] - '0';
ans += Solve(ultima_c,s);
ans %= 10;
cout << ans << '\n';
}
return 0;
}