Pagini recente » Cod sursa (job #979526) | Cod sursa (job #1127247) | Cod sursa (job #3166632) | Cod sursa (job #2623463) | Cod sursa (job #837173)
Cod sursa(job #837173)
#include<fstream>
#include<string.h>
#define MOD 666013
using namespace std;
ifstream f("iepuri.in");
ofstream g("iepuri.out");
long long p[3][3],v;
long long sum ,X[3],a,b,c,n;
long long A[3][3],r[3][3],sol[3][3];
int i;
void multiply(long long a[3][3],long long b[3][3],long long c[3][3]){
int i,j,k;
for(i=0;i<3;i++){
for(j=0;j<3;j++){
c[i][j]=0;
for(k=0;k<3;k++){
c[i][j]+=a[i][k]*b[k][j]%MOD;
c[i][j]%=MOD;
}
}
}
}
int main(){
f>> v;
p[0][0]=p[1][1]=p[2][2]=1;
while(v){
f>>X[2]>>X[1]>>X[0]>>a>>b>>c>>n;
A[1][1]=A[1][2]=A[2][0]=A[2][2]=0;
A[1][0]=A[2][1]=1;
A[0][0]=a;A[0][1]=b;A[0][2]=c;
n-=2;
memcpy(sol,p,sizeof(sol));
while(n!=0){
if(n%2){
multiply(sol,A,r);
memcpy(sol,r,sizeof(sol));
}
multiply(A,A,r);
memcpy(A,r,sizeof(A));
n/=2;
}
sum=0;
for(i=0;i<3;i++){
sum+=(sol[0][i]*X[i])%MOD;
sum%=MOD;
}
g<<sum<<'\n';
v--;
}
return 0;
}