Pagini recente » Cod sursa (job #3340826) | Cod sursa (job #2279218) | Cod sursa (job #1356941) | Cod sursa (job #943784) | Cod sursa (job #3351284)
#include <fstream>
using namespace std;
ifstream cin("iepuri.in");
ofstream cout("iepuri.out");
using ll= long long;
const int mod= 666013;
ll baza[5][5], rez[5][5];
void exp_rap(int n){
ll aux[5][5]= {0}, i, j, k;
ll R;
while(n > 0){
if(n% 2== 0){
n/= 2;
for(i= 1;i <= 3;i++)
for(j= 1;j <= 3;j++){
R= 0;
for(k= 1;k <= 3;k++)
R= (R+ baza[i][k]* baza[k][j]* 1LL)% mod;
aux[i][j]= R;
}
for(i= 1;i <= 3;i++)
for(j= 1;j <= 3;j++)
baza[i][j]= aux[i][j];
}
else{
n--;
for(i= 1;i <= 3;i++)
for(j= 1;j <= 3;j++){
R= 0;
for(k= 1;k <= 3;k++)
R= (R+ baza[i][k]* rez[k][j]* 1LL)% mod;
aux[i][j]= R;
}
for(i= 1;i <= 3;i++)
for(j= 1;j <= 3;j++)
rez[i][j]= aux[i][j];
}
}
}
int main()
{
int t, i, j;
ll A, B, C, X, Y, Z, N;
cin >> t;
while(t--){
cin >> X>> Y>> Z>> A>> B>> C>> N;
baza[1][1]= 0; baza[1][2]= 1; baza[1][3]= 0;
baza[2][1]= 0; baza[2][2]= 0; baza[2][3]= 1;
baza[3][1]= C; baza[3][2]= B; baza[3][3]= A;
rez[1][1]= rez[2][2]= rez[3][3]= 1;
exp_rap(N- 2);
ll afis= 0;
afis= ((X* rez[3][1]* 1LL)% mod+ (Y* rez[3][2]* 1LL)% mod+ (Z* rez[3][3]* 1LL)% mod)% mod;
cout << afis<< '\n';
for(i= 1;i <= 3;i++)
for(j= 1;j <= 3;j++)
rez[i][j]= 0;
}
return 0;
}