Pagini recente » Cod sursa (job #1427561) | Cod sursa (job #1463718) | Cod sursa (job #1199829) | Cod sursa (job #1485281) | Cod sursa (job #1360199)
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
#include<cstring>
#include<set>
#include<map>
#include<cmath>
using namespace std ;
#define maxn 1005
int N, a, b, c ;
int sum[maxn] ;
int poz[maxn] ;
int rez ;
int main()
{
std::ios_base::sync_with_stdio(false) ;
freopen("koba.in", "r", stdin);
freopen("koba.out", "w", stdout);
cin >> N >> a >> b >> c ;
a = a % 10 ;
b = b % 10 ;
c = c % 10 ;
sum[0] = a ;
sum[1] = a + b ;
for(int i = 0; i < maxn; ++i)
poz[i] = -1 ;
int ind = 2 ;
int x = c * 100 + b * 10 + a ;
while( poz[x] == -1 )
{
poz[x] = ind ;
sum[ind] = sum[ind - 1] + c ;
int aux = ( a * b + c ) % 10 ;
a = b ;
b = c ;
c = aux ;
x = c * 100 + b * 10 + a ;
++ind ;
}
if( N <= ind )
rez = sum[N - 1] ;
else
{
rez += sum[poz[x] - 1] ;
rez += (sum[ind - 1] - sum[poz[x] - 1]) * ( (N - poz[x]) / (ind - poz[x]) ) ;
int rest = (N - poz[x]) % (ind - poz[x]) - 1 ;
if( rest >= 0 )
rez += sum[poz[x] + rest] - sum[poz[x] - 1] ;
}
cout << rez ;
return 0 ;
}