Keyword: brute force
Algorithm:
Record the allocation method for each country and after that, iterate through all the cities and see which city is optimal.
Code:
#include<cstdio> #include<cctype> #include<cstring> inline int cov( char a ) { if( a == 'r' ) return 0; else if( a == 'o' ) return 1; else if( a == 'y' ) return 2; else if( a == 'g' ) return 3; return 4; } int main() { char input[ 1000 ], color[ 100 ][ 5 ], kind[ 100 ][ 5 ], col, kin; int qnt = 0, ans; while( gets( input ) && strcmp( input, "#" ) ) { if( *input == 'e' ) { int now = 0, opt = 1e9; for( int i = 0; i < qnt; ++i, now = 0 ) { for( int j = 0; j < qnt; ++j ) if( i != j ) for( int k = 0; k < 5; ++k ) if( kind[ i ][ k ] != kind[ j ][ k ] ) ++now; if( now < opt ) opt = now, ans = i; } printf( "%d\n", ans+1 ); qnt = 0; } else { for( int i = 0; i < 5; ++i ) { sscanf( input + i*4, "%c/%c", &col, &kin ); kind[ qnt ][ cov( col ) ] = kin; } ++qnt; } } return 0; }
沒有留言:
張貼留言