Pagini recente » Cod sursa (job #1866014) | Cod sursa (job #34675) | Cod sursa (job #1130422) | Cod sursa (job #1206209) | Cod sursa (job #503909)
Cod sursa(job #503909)
#include <cstdio>
#define nmax 15
using namespace std;
FILE *fin=fopen("cifra.in", "r");
FILE *fout=fopen("cifra.out", "w");
int suma, n, x, i, sol[nmax];
int v1[]={1};
int v2[]={2,4,6,8};
int v3[]={3,9,7,1};
int v4[]={4,6};
int v5[]={5};
int v6[]={6};
int v7[]={7,9,3,1};
int v8[]={8,4,2,6};
int v9[]={9, 1};
int v10[]={0};
void init()
{
sol[1]=1;
sol[2]=4;
sol[3]=4;
sol[4]=2;
sol[5]=1;
sol[6]=1;
sol[7]=4;
sol[8]=4;
sol[9]=2;
sol[10]=1;
}
int main()
{
init();
fscanf(fin, "%d%d", &n, &x);
suma=x%10;
fprintf(fout, "%d\n", suma);
for(i=2;i<=n;++i)
{
fscanf(fin, "%d", &x);
switch(x%10)
{
case 1: suma=(suma+1)%10; break;
case 2: if(i<sol[x%10]) suma=(suma+v2[i%sol[2]-1])%10; else suma=(suma+v2[sol[2]%i-1])%10; break;
case 3: if(i<sol[x%10]) suma=(suma+v3[i%sol[3]-1])%10; else suma=(suma+v3[sol[3]%i-1])%10; break;
case 4: if(i<sol[x%10]) suma=(suma+v4[i%sol[4]-1])%10; else suma=(suma+v4[sol[4]%i-1])%10; break;
case 5: if(i<sol[x%10]) suma=(suma+v5[i%sol[5]-1])%10; else suma=(suma+v5[sol[5]%i-1])%10; break;
case 6: if(i<sol[x%10]) suma=(suma+v6[i%sol[6]-1])%10; else suma=(suma+v6[sol[6]%i-1])%10; break;
case 7: if(i<sol[x%10]) suma=(suma+v7[i%sol[7]-1])%10; else suma=(suma+v7[sol[7]%i-1])%10; break;
case 8: if(i<sol[x%10]) suma=(suma+v8[i%sol[8]-1])%10; else suma=(suma+v8[sol[8]%i-1])%10; break;
case 9: if(i<sol[x%10]) suma=(suma+v9[i%sol[9]-1])%10; else suma=(suma+v9[sol[9]%i-1])%10; break;
case 10: if(i<sol[x%10]) suma=(suma+v10[i%sol[10]-1])%10; else suma=(suma+v10[sol[10]%i-1])%10; break;
}
fprintf(fout, "%d\n", suma);
}
//fprintf(fout, "%d\n", v4[4%sol[4]-1]);
//fprintf(fout, "%d", v4[2%4-1]);
//fprintf(fout, "%d", suma);
return 0;
}