Cod sursa(job #1497624)
Utilizator | Data | 7 octombrie 2015 00:02:29 | |
---|---|---|---|
Problema | Cifra | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 3.59 kb |
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
ifstream f("cifra.in");
ofstream g("cifra.out");
int n,i,T,d;
short c[10][4],a[100];
string nr;
void genereazaA(short a[])
{
short suma=0;
for(int i=0;i<100;i++)
{
suma=(suma + c[i%10][i%4])%10;
a[i]=suma;
}
}
void genereazaC(short c[10][4])
{
for(int i=0;i<=9;i++)
for(int j=0;j<=3;j++)
{
if (i==0)
c[i][j] = 0;
if (i==1)
c[i][j] = 1;
if (i==2)
{
if (j==0)
c[i][j] =6;
if (j==1)
c[i][j] =2;
if (j==2)
c[i][j] =4;
if (j==3)
c[i][j] =8;
}
if (i==3)
{
switch(j)
{
case 0:
c[i][j] = 1;
break;
case 1:
c[i][j] = 3;
break;
case 2:
c[i][j] = 9;
break;
case 3:
c[i][j] = 7;
}
}
if (i==4)
{
switch(i%2)
{
case 0:
c[i][j]= 6;
break;
case 1:
c[i][j] = 4;
break;
}
}
if (i==5)
{
c[i][j] =5;
}
if (i==6)
{
c[i][j] = 6;
}
if (i==7)
{
switch(j)
{
case 0:
c[i][j] = 1;
break;
case 1:
c[i][j] = 7;
break;
case 2:
c[i][j] = 9;
break;
case 3:
c[i][j] = 3;
}
}
if (i==8)
{
switch(j)
{
case 0:
c[i][j] = 6;
break;
case 1:
c[i][j] = 8;
break;
case 2:
c[i][j] = 4;
break;
case 3:
c[i][j] = 2;
}
}
if (i==9)
{
switch(j)
{
case 0:
c[i][j] = 1;
break;
case 1:
c[i][j] = 9;
break;
case 2:
c[i][j] = 1;
break;
case 3:
c[i][j] = 9;
}
}
}
}
void afis()
{
for(int j=0;j<=3;j++)
{
for(int i=0;i<=9;i++)
{
g<<c[i][j]<<" ";
}
g<<"\n";
}
}
//progr princ
int main()
{
f>>T;
genereazaC(c);
genereazaA(a);
int suma=0,nrc;
for (d=0;d<T;d++)
{
f>>nr;
nrc=nr.length();
if(nrc>=2)
suma=a[ ((short)nr[nrc-2]-(short)'0')*10+(short)nr[nrc-1]-(short)'0'];
else
suma=a[(short)nr[nrc-1]-(short)'0'];
g<<suma<<"\n";
}
// f.close();
// g.close();
return 0;
}