Cod sursa(job #1962331)
| Utilizator | Data | 11 aprilie 2017 18:21:42 | |
|---|---|---|---|
| Problema | Cifra | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 1.44 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("cifra.in");
ofstream g("cifra.out");
int t,a[11][5]={0,0,0,0,0,0,1 ,1, 1, 1,0,2, 4, 8, 6,0,3, 9, 7, 1,0,4, 6, 4, 6,0,5, 5, 5, 5,0,6, 6, 6, 6,0,7, 9, 3, 1,0,8, 4, 2, 6,0,9, 1, 9, 1};
int x,r,rez,d,k;
string s;
int main()
{
f>>t; getline(f,s);
for(int i=1;i<=t;++i)
{
getline(f,s);
rez=0;
r=s[s.size()-1]-'0';
if(s.size()>=2)
{
d=(s[s.size()-2]-'0');
}
d=d%10;
k=d/2;
d=d%2;
for(int i=1;i<=9;++i)
{
for(int j=1;j<=4;++j)
{
if(i%2==j%2)
{
rez+=a[i][j]*k;
}
}
}
if(d==0)
{
for(int i=1;i<=r;++i)
{
rez+=a[i][i%4];
if(i%4==0) rez+=a[i][4];
}
}
else
{
for(int i=1;i<=r;++i)
{
for(int j=1;j<=4;++j)
{
if(i%2==j%2)
{
rez+=a[i][j];
}
}
}
for(int i=r+1;i<=9;++i)
{
rez+=a[i][i%4];
if(i%4==0) rez+=a[i][4];
}
}
rez%=10;
g<<rez<<'\n';
}
return 0;
}
