Pagini recente » Cod sursa (job #978546) | Cod sursa (job #587606) | Cod sursa (job #2818184) | Cod sursa (job #1465878) | Cod sursa (job #594227)
Cod sursa(job #594227)
# include <cstdio>
# include <cstring>
const char *FIN = "poligoane.in", *FOU = "poligoane.out" ;
const int MAX = 2005 ;
int S[MAX][MAX] ;
int T, N, mod ;
int main ( void ) {
freopen ( FIN, "r", stdin ) ;
freopen ( FOU, "w", stdout ) ;
for ( scanf ( "%d", &T ) ; T ; --T ) {
scanf ( "%d %d", &N, &mod ) ;
memset ( S, 0, sizeof ( S ) ), S[0][0] = 1 ;
for ( int i = 1; i <= N; ++i ) {
S[0][i] = S[0][i - 1] ;
}
for ( int i = 3; i <= N; ++i ) {
for ( int j = 3; j <= i; ++j ) {
S[i][j] = S[i][j - 1] + S[i - j][j] ;
if ( S[i][j] >= mod ) S[i][j] -= mod ;
}
for ( int j = i + 1; j <= N; ++j ) {
S[i][j] = S[i][j - 1] ;
}
}
for ( int i = 0; i <= N; ++i, printf ( "\n" ) ) {
for ( int j = 0; j <= N; ++j ) {
printf ( "%d ", S[i][j] ) ;
}
}
printf ( "%d\n", S[N][N] ) ;
}
}