#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.