Submission #9797

#TimeUsernameProblemLanguageResultExecution timeMemory
9797maniacQuaternion inverse (kriii2_Q)C++98
1 / 4
1000 ms1244 KiB
#include <cstdio> int d[10][10][10][10][4]; bool can( int a1, int b1, int c1, int d1, int a2, int b2, int c2, int d2, int M ){ int m = M*M; if( (a1*a2 + m - (b1*b2)%m + m - (c1*c2)%m + m - (d1*d2)%m )%M != 1 ) return 0; //printf("%d\n", (a1*b2 + b1*a2 +c1*d2 + m -(d1*c2)%M )%M); if( (a1*b2 + b1*a2 +c1*d2 + m -(d1*c2)%M )%M != 0 ) return 0; if( (a1*c2 + m - (b1*d2)%m + c1*a2 + d1*b2)%M != 0 ) return 0; if( (a1*d2 + b1*c2 + m - (c1*b2)%m + d1*a2 )%M != 0 ) return 0; return 1; } void go( int a, int b, int c, int d1, int m ){ for(int i=0; i<m; i++){ for(int j=0; j<m; j++){ for(int k=0; k<m; k++){ for(int r=0; r<m; r++){ if( can( a, b, c, d1, i, j, k, r, m ) ) { d[a][b][c][d1][0] = i; d[a][b][c][d1][1] = j; d[a][b][c][d1][2] = k; d[a][b][c][d1][3] = r; } } } } } } int main(){ int m, t; scanf("%d %d", &m, &t); for(int i=0; i<m; i++){ for(int j=0; j<m; j++){ for(int k=0; k<m; k++){ for(int r=0; r<m; r++){ go( i, j, k, r, m ); } } } } //printf("%d\n", can( 2, 3, 2, 1, 4, 4, 1, 3, m )); while( t-- ){ int a1, b1, c1, d1; scanf("%d %d %d %d", &a1, &b1, &c1, &d1); for(int i=0; i<4; i++) printf("%d ", d[a1][b1][c1][d1][i] ); puts(""); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...