Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
138854 | 陈家宝 | 绝境求生 | C++ | 通过 | 100 | 0 MS | 260 KB | 827 | 2024-03-19 16:29:34 |
#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; }