Pagini recente » Cod sursa (job #2379161) | Cod sursa (job #2723852) | Cod sursa (job #1979781) | Cod sursa (job #2222694) | Cod sursa (job #2456270)
#include <iostream>
#include <fstream>
#define REP(i,n) for(int i=0;i<n;i++)
#define MOD 666013
using namespace std;
ifstream f("iepuri.in");
ofstream g("iepuri.out");
typedef long long ll;
struct matrice
{
ll a[3][3];
ll* operator[](int i)
{
return a[i];
}
matrice operator*(matrice &b)
{
matrice rez;
REP(i,3) REP(j,3)
rez[i][j]=0;
REP(i,3) REP(j,3) REP(k,3)
rez[i][j]=(rez[i][j]+a[i][k]*b[k][j])%MOD;
return rez;
}
};
matrice operator^(matrice a,ll n)
{
matrice rez;
REP(i,3) REP(j,3) rez[i][j]=(i==j);
while(n)
if(n%2)
{
n--;
rez=rez*a;
}
else
{
n/=2;
a=a*a;
}
return rez;
}
int main()
{
ll a,b,c,n,t;
f>>t;
matrice T;
T[0][0]=T[0][2]=T[1][0]=T[1][1]=0;
T[0][1]=T[1][2]=1;
ll F[3];
REP(i,t)
{
f>>F[0]>>F[1]>>F[2]>>a>>b>>c>>n;
T[2][0]=c;
T[2][1]=b;
T[2][2]=a;
matrice S=T^n;
ll rez=0;
REP(i,3)
rez=(rez+S[0][i]*F[i])%MOD;
g<<rez<<'\n';
}
f.close();
g.close();
return 0;
}