Pagini recente » Cod sursa (job #1775234) | Cod sursa (job #390754) | Cod sursa (job #1290065) | Cod sursa (job #1762906) | Cod sursa (job #520963)
Cod sursa(job #520963)
#include<stdio.h>
FILE*f=fopen("koba.in","r");
FILE*g=fopen("koba.out","w");
int T1,T2,T3,T4,R,i,j,N;
int Viz[1001],Viz2[1001];
int tr(int a,int b,int c){
int aux = c * 100 + b * 10 + a;
return aux;
}
int main () {
fscanf(f,"%d %d %d %d",&N,&T1,&T2,&T3); T1 %= 10; T2 %= 10; T3 %= 10;
R = Viz[tr(T1,T2,T3)] = T1 % 10 + T2 %10 + T3 %10 ;
Viz2[tr(T1,T2,T3)] = 3;
for ( i = 4 ; i <= N ; ++i ){
T4 = (T3 + T2 * T1 ) % 10;
R += T4;
T1 = T2; T2 = T3; T3 = T4;
if ( !Viz[tr(T1,T2,T3)] ){
Viz[tr(T1,T2,T3)] = R;
Viz2[tr(T1,T2,T3)] = i;
}
else{
break;
}
}
if ( i <= N ){
int prd = i - Viz2[tr(T1,T2,T3)];
int sumprd = R - Viz[tr(T1,T2,T3)];
int rep = ( N - i ) / prd;
R += rep * sumprd;
i += rep * prd;
}
for ( i = i + 1 ; i <= N ; ++i ){
T4 = (T3 + T2 * T1 ) % 10;
R += T4;
T1 = T2; T2 = T3; T3 = T4;
}
fprintf(g,"%d\n",R);
fclose(f);
fclose(g);
return 0;
}