Pagini recente » Cod sursa (job #1021735) | Cod sursa (job #2352193) | Cod sursa (job #2206659) | Cod sursa (job #2351462) | Cod sursa (job #340260)
Cod sursa(job #340260)
Utilizator |
Mircea Dima blasterz |
Data |
13 august 2009 21:39:00 |
Problema |
Koba |
Scor |
100 |
Compilator |
cpp |
Status |
done |
Runda |
w3 |
Marime |
1.2 kb |
#include <cstdio>
bool use[10][10][10];
int t[10001];
int T1, T2, T3;
int n;
int main()
{
freopen("koba.in","r",stdin);
scanf("%d %d %d %d\n", &n, &t[1], &t[2], &t[3]);
t[1] %= 10;
t[2] %= 10;
t[3] %= 10;
use[t[1]][t[2]][t[3]] = 1;
int i,m;
for(m = 4; m <= 1000; ++m)
{
i = m;
t[i] = t[i-1] + t[i-2] * t[i-3];
t[i] %= 10;
if(use[t[i-2]][t[i-1]][t[i]] == 1)
{
T1 = t[i-2];
T2 = t[i-1];
T3 = t[i];
break;
}
use[t[i-2]][t[i-1]][t[i]] = 1;
}
int sum = 0;
// for(i = 1; i <= m; ++i) printf("%d ", t[i]);
// printf("\n");
if(n <= m)
{
for(i = 1; i <= n; ++i)
sum += t[i];
}
else
{
for(i = 1; i <= m; ++i)
if(t[i] == T1 && t[i+1] == T2 && t[i+2] == T3) break;
int p = i;
for(i = 1; i < p; ++i) sum += t[i];
int s = 0;
for(i = p; i <= m - 3; ++i)
s += t[i];
n -= p-1;
//printf("s:%d \n",s);
sum += s * (n / (m-3-p+1));
//printf("%d %d\n",n, m-3-p+1);
int r = n % (m-3-p+1);
// printf("%d\n",r);
for(i = p; i < p + r; ++i) sum += t[i];
}
freopen("koba.out","w",stdout);
printf("%d\n", sum);
return 0;
}