提交时间:2024-03-18 13:50:19

运行 ID: 138746

# 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 ; }