Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
138746 | 梁乃元 | 绝境求生 | C++ | 通过 | 100 | 0 MS | 252 KB | 953 | 2024-03-18 13:50:19 |
# include <bits/stdc++.h> using namespace std ; int a [1000000] , tmp [1000000] , cnt ; void mrg ( int l , int r ) { if ( l >= r ) { return ; } int mid = l + r ; mid /= 2 ; int i = l , j = mid + 1 ; for ( int k = l ; k <= r ; k ++ ) { if ( j > r || i <= mid && a [i] <= a [j] ) { tmp [k] = a [i ++] ; } else { tmp [k] = a [j ++] ; cnt += mid - i + 1 ; } } for ( int k = l ; k <= r ; k ++ ) { a [k] = tmp [k] ; } return ; } int main ( ) { int n , m , z , s ; while ( cin >> n >> m && n && m ) { int k = 0 ; cnt = 0 ; for ( int i = 1 ; i <= m ; i ++ ) { for ( int j = 1 ; j <= n ; j ++ ) { cin >> s ; if ( ! s ) { z = m - i - 1 ; } else { a [k ++] = s ; } } } mrg ( 1 , n * m - 1 ) ; if ( n & 1 ) { z = 0 ; } cout << ( z % 2 == cnt % 2 ? "YES" : "NO") << endl ; } return 0 ; }