代码:
// Problem#: 8223
// Submission#: 2127308
// The source code is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
// URI: http://creativecommons.org/licenses/by-nc-sa/3.0/
// All Copyright reserved by Informatic Lab of Sun Yat-sen University
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std ;
int main()
{
int d[31][16] ;
memset(d,0,sizeof(d)) ;
d[1][15] = d[1][12] = d[1][6] = d[1][3] =d[1][0]= 1 ;
for(int i = 2 ; i <= 30 ; i ++)
{
d[i][15] = d[i-1][0]+d[i-1][3]+d[i-1][6]+d[i-1][12]+d[i-1][15] ;
d[i][12] = d[i-1][3] + d[i-1][15] ;
d[i][9] = d[i-1][6] ;
d[i][6] = d[i-1][15] + d[i-1][9] ;
d[i][3] = d[i-1][15] + d[i-1][12] ;
d[i][0] = d[i-1][15] ;
}
int k = 1 ;
int n ;cin >> n ;
while(n--)
{
int c ;
cin >> c ;
cout << k++ <<" " << d[c][15] << endl;
}
}