Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
140024 | 梁乃元 | 派对灯 | C++ | 通过 | 100 | 0 MS | 256 KB | 1267 | 2024-03-28 13:17:52 |
# include <bits/stdc++.h> using namespace std ; int flag [7] , n , c , OK ; int state [9] [7] = { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 2 , 0 , 0 , 1 , 1 , 1 , 0 , 1 , 0 , 1 , 0 , 1 , 0 , 1 , 1,0,1,1,0,1,1, 2,1,0,0,1,0,0, 1,1,0,1,0,1,0, 2,1,1,0,0,0,1, 0,1,1,1,1,1,1, } ; int Loc ( int x ) { return ( x % 6 == 0 ? 6 : x % 6 ) ; } int Check ( int s ) { if ( state [s] [0] > c ) { return 0 ; } if ( c == 2 && s == 4 ) { return 0 ; } if ( c==3 && ( ( s == 2 ) || ( s == 5 ) || ( s == 7 ) ) ) { return 0 ; } if ( c==1 && s==8 ) { return 0 ; } for ( int i = 1 ; i <= 6 ; i ++ ) { if ( flag [i] == -1 ) { continue ; } if ( state [s] [i] != flag [i] ) { return 0 ; } } return 1 ; } int main() { memset ( flag , -1 , sizeof ( flag ) ) ; cin >> n >> c ; for ( int k ; cin >> k && k != -1 ; flag [Loc ( k )] = 1 ) ; for ( int k ; cin >> k && k != -1 ; flag [Loc ( k )] = 0 ) ; for (int i = 1; i <= 8 ; i ++ ) { if ( Check ( i ) ) { for ( int j = 1 ; j <= n ; j ++ ) { cout << state [i] [Loc ( j )] ; } cout << endl ; OK = 1 ; } } if ( ! OK ) { cout << "IMPOSSIBLE" << endl ; } return 0; }