|
|
вернуться в форумОбщий форумWhy do I get WA? Can anyone help me? I used the gaussian elimination method, to solve this system (mod 2). I don't know why i'm getting WA. Here is my source code: /* 1042 - Central heating */ #include <stdio.h> int A[200][201]; int X[200]; int i, j, k, N; int read( void ); int gaus( void ); int main( void ) { #ifndef ONLINE_JUDGE freopen( "1042.in","rt",stdin ); freopen( "1042.out","wt",stdout ); #endif read(); gaus(); for( i = N - 1; i >= 0; i-- ) { k = 0; for( j = i + 1; j < N; j++ ) k += A[i][j] * X[j]; X[i] = (A[i][N] + (k & 1)) & 1; } return( 0 ); } int read( void ) { memset( A, 0, sizeof(A) ); scanf( "%d", &N ); for( i = 0; i < N; i++ ) { while( 1 ) { scanf( "%d", &j ); if( j == -1 ) break; A[--j][i] = 1; } A[i][N] = 1; } return( 0 ); } int gaus( void ) { #define swap(i, j) i = j ^ i ^ (j = i) for( i = 0; i < N - 1; i++ ) { if( !A[i][i] ) for( j = i + 1; j < N; j++ ) if( A[j][i] ) { for( k = i; k <= N; k++ ) swap( A[i][k], A[j][k] ); break; } for( j = i + 1; j < N; j++ ) if( A[j][i] ) for( k = 0; k <= N; k++ ) A[j][k] = (A[i][k] + A[j][k]) & 1; } } |
|
|