#include<bits/stdc++.h> using namespace std; int n ,m ,x ,a[1005][1005] ,d[1005][1005][5]; vector<int> so; vector<int> kq; bool kt( int a ,int i ,int j ) { for( int t = j ; t <= j+1 ;t++ ) { for( int p = i ; p <= i+1 ;p++ ) { int x = p-2*(p>n), y = t-2*(t>m); for( int q = 1 ; q <= d[x][y][0] ;q++ ) { if( d[x][y][q] == a ) return 1; } } } return 0; } main() { // freopen("CHEVUON.inp" ,"r" ,stdin); // freopen("CHEVUON.out" ,"w" ,stdout); cin >> n >> m; for( int i = 1 ; i <= n ;i++) { for( int j = 1 ; j <= m ;j++ ) { cin >> x; so.push_back(x); } } sort(so.begin() ,so.end() ,greater<int>()); int dem = 0; for( int j = 1 ; j <= m ; j+=2) { int te = 1; for( int i = 1 ; i <= n ; i+=2 ,te++ ) { int ma = 0; for( int t = j ; t <= j+1 ;t++ ) { for( int p = i ; p <= i+1 ;p++ ) { if( p > n || t > m ) { ma = max( ma ,a[p-2*(p>n)][t-2*(t>m)] ); continue; } a[p][t] = so[dem]; ma = max( ma ,so[dem] ); dem++; } } ma++; while( kt( ma ,i ,j ) ) ma++; kq.push_back(ma); for( int t = j ; t <= j+1 ;t++ ) { for( int p = i ; p <= i+1 ;p++ ) { int x = p-2*(p>n), y = t-2*(t>m) ,sl = ++d[x][y][0]; d[x][y][sl] = ma; } } } } for( int i = 1 ; i <= n ; i++ ) { for( int j = 1 ; j <= m ; j++) { cout<<a[i][j]<<' '; } cout<<'\n'; } cout<<kq.size()<<'\n'; for( int i : kq) { cout<<i<<'\n'; } }
* Chuyên dạy lập trình ONLINE cho học sinh THCS, THPT *.
Mọi giao lưu, trao đổi, xin liên hệ: Lê Quang Vinh - zalo: 037.803.8755.
Page: Lớp học Code Sky
Group FB1: Ôn thi HSG9 - THTB - TS10 chuyên tin
Group FB2: Học Scratch - Ôn thi Tin học trẻ bảng A
Thứ Bảy, 4 tháng 12, 2021
CHEVUON C++
Đăng ký:
Đăng Nhận xét (Atom)
Không có nhận xét nào:
Đăng nhận xét
Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.