Pagini recente » Cod sursa (job #2507380) | Cod sursa (job #2743736) | Cod sursa (job #281399) | Cod sursa (job #984659) | Cod sursa (job #1653375)
#include <iostream>
#include <fstream>
using namespace std;
pair<int,int> m[10][10][10];
int main()
{
ifstream in("koba.in");
ofstream out("koba.out");
int n,a,b,c,t,suma=0,grad=3,i;
in>>n;
in>>a;
a%=10;
in>>b;
b%=10;
in>>c;
c%=10;
suma=a+b+c;
m[a][b][c].first=suma;
m[a][b][c].second=3;
n-=3;
while (true)
{
t=c;
c=c+a*b;
c%=10;
suma+=c;
grad++;
a=b;
b=t;
if (m[a][b][c].first==0)
{
m[a][b][c].first=suma;
m[a][b][c].second=grad;
n--;
}
else
{
suma+=n/(grad-m[a][b][c].second)*(suma-m[a][b][c].first);
n%=(grad-m[a][b][c].second);
break;
}
}
for (i=1;i<n;i++)
{
t=c;
c=c+a*b;
c%=10;
suma+=c;
a=b;
b=t;
}
out<<suma;
}