Pagini recente » Cod sursa (job #2402162) | Cod sursa (job #1460632) | Cod sursa (job #133237) | Cod sursa (job #3125083) | Cod sursa (job #2365648)
#include <fstream>
#include <iostream>
using namespace std;
ifstream f("koba.in");
ofstream g("koba.out");
int t1, t2, t3, n, nr, s[100100], frec[1010], pozi, pozf;
long long sol;
bool ok = 1;
int main()
{
f >> n >> t1 >> t2 >> t3;
t1 = t1 % 10;
t2 = t2 % 10;
t3 = t3 % 10;
frec[t1*100 + t2*10 + t3] = 1;
s[1] = t1;
s[2] = t1 + t2;
s[3] = t1 + t2 + t3;
if(n == 1)
{ g << s[1] << '\n';
return 0;
}
if(n == 2)
{ g << s[2] << '\n';
return 0;
}
if(n == 3)
{ g << s[3] << '\n';
return 0;
}
for(int i=4; i<=n && ok; i++)
{
int x = (t1 * t2 + t3) % 10;
t1 = t2;
t2 = t3;
t3 = x;
s[i] = s[i-1] + x;
nr = t1 * 100 + t2 * 10 + t3;
if(frec[nr]) pozf = i, ok = 0;
else frec[nr] = i;
}
pozi = frec[nr];
int x = (n - pozi) / (pozf - pozi);
int y = (n - pozi) % (pozf - pozi);
sol = s[pozi] + x * (s[pozf] - s[pozi]) + s[pozi + y] - s[pozi];
g << sol << '\n';
return 0;
}