fork download
  1. #include<iostream>
  2. #include<cstdio>
  3. using namespace std;
  4. int main()
  5. {
  6. int tc,i,j,k,x;
  7.  
  8. long long int n;
  9. scanf("%d",&tc);
  10. x=n-2;
  11. while(tc--)
  12. {
  13. long long int m1[3][3]={{3,2,1},{1,0,0},{0,0,1}};
  14. long long int mult[3][1]={{0},{0},{0}},m2[3][1]={{1},{0},{5}};
  15. scanf("%lld",&n);
  16. if(n==1)
  17. printf("0\n");
  18. else if(n==2)
  19. printf("1\n");
  20. else
  21. {
  22.  
  23.  
  24. while((x)--)
  25. {
  26. for(i=0;i<3;i++)
  27. {
  28. for(j=0;j<1;j++)
  29. {
  30. mult[i][j]=0;
  31. for(k=0;k<3;k++)
  32. mult[i][j]=mult[i][j]+(m1[i][k]*m2[k][j])%1000000007;
  33.  
  34. }
  35.  
  36. }
  37. }
  38. for(i=0;i<3;i++)
  39. for(k=0;k<1;k++)
  40. m2[i][k]=mult[i][k];
  41. }
  42. cout<<m1[0][0]<<endl;
  43. }
  44. }
Success #stdin #stdout 0.02s 2728KB
stdin
3
1
2
10
stdout
0
3
1
3
3