#include #include #include #include using namespace std; #define MAX 1000001 typedef vector vec; typedef vector mat; mat mul(mat &A, mat &B) { mat C(A.size(), vec(B[0].size())); for(int i=0; i0) { if(n&1) B = mul(B, A); A = mul(A, A); n >>= 1; } return B; } int T(long n) { if(n==1) return 0; if(n==2) return 0; if(n==3) return 0; if(n==4) return 1; mat A(4, vec(4)); A[0][0] = 1; A[0][1] = 1; A[0][2] = 1; A[0][3] = 1; A[1][0] = 1; A[1][1] = 0; A[1][2] = 0; A[1][3] = 0; A[2][0] = 0; A[2][1] = 1; A[2][2] = 0; A[2][3] = 0; A[3][0] = 0; A[3][1] = 0; A[3][2] = 1; A[3][3] = 0; A = pow(A, n-4); // printf("@@@\n"); // for(int i=0; i<4; i++) { // printf("%d %d %d %d\n", A[i][0], A[i][1], A[i][2], A[i][3]); // } // printf("@@@\n"); return A[0][0]; } int main() { int q; cin >> q; // printf("q: %d\n", q); for(int i=0; i> n; printf("%d\n", T(n)); } return 0; }