提出 #10569988
ソースコード 拡げる
#pragma warning (disable:4996)
#include"bits/stdc++.h"
#include<cassert>
#define int long long
#define MRE assert(0);
#define rep(i,n) for(int i=0;i<n;i++)
using namespace std;
const long long mod = 1000000007;
const long long inf = 1e17;
typedef pair<int, int> P;
struct edge {
int to, id;
};
int a[105][105];
int match[205]; bool used[205];
vector<int>ans[205],ans2[205];
vector<int>G1[105][105];
vector<int>G[205];
void add_edge(int u, int v) {
G[u].push_back(v);
G[v].push_back(u);
}
bool dfs(int v) {
used[v] = true;
for (int i : G[v]) {
int u = i, w = match[u];
if (w < 0 || !used[w] && dfs(w)) {
match[v] = u; match[u] = v; return true;
}
}
return false;
}
void matching(int n) {
rep(i, n)G[i].clear();
rep(i, n) {
rep(j, n) {
if (G1[i][j].size())add_edge(i, n+j);
}
}
memset(match, -1, sizeof(match));
rep(i, n) {
if (match[i] < 0) {
memset(used, 0, sizeof(used));
dfs(i);
}
}
rep(i, n) {
ans[i].push_back(G1[i][match[i] - n][0]);
G1[i][match[i] - n].erase(G1[i][match[i] - n].begin());
}
}
signed main() {
int n, m; cin >> n >> m;
rep(i, n) {
rep(j, m) {
cin >> a[i][j];
G1[i][(a[i][j]-1)/m].push_back(a[i][j]);
}
}
rep(i,m)matching(n);
rep(i, n) {
rep(j, m) {
if (j)cout << ' '; cout << ans[i][j];
}cout << endl;
}
rep(j, m) {
vector<int>s;
rep(i, n)s.push_back(ans[i][j]);
sort(s.begin(), s.end());
rep(i, n)ans2[i].push_back(s[i]);
}
rep(i, n) {
rep(j, m) {
if (j)cout << ' '; cout << ans2[i][j];
}cout << endl;
}
}
提出情報
| 提出日時 |
|
| 問題 |
D - Sorting a Grid |
| ユーザ |
Rho17 |
| 言語 |
C++14 (GCC 5.4.1) |
| 得点 |
1100 |
| コード長 |
1602 Byte |
| 結果 |
AC |
| 実行時間 |
33 ms |
| メモリ |
6912 KiB |
ジャッジ結果
| セット名 |
Sample |
All |
| 得点 / 配点 |
0 / 0 |
1100 / 1100 |
| 結果 |
|
|
| セット名 |
テストケース |
| Sample |
sample01.txt, sample02.txt |
| All |
sample01.txt, sample02.txt, in01.txt, in02.txt, in03.txt, in04.txt, in05.txt, in06.txt, in07.txt, in08.txt, in09.txt, in10.txt, in11.txt, in12.txt, in13.txt, in14.txt, in15.txt, in16.txt, in17.txt, in18.txt, in19.txt, in20.txt, in21.txt, in22.txt, in23.txt, sample01.txt, sample02.txt |
| ケース名 |
結果 |
実行時間 |
メモリ |
| in01.txt |
AC |
20 ms |
3584 KiB |
| in02.txt |
AC |
24 ms |
4096 KiB |
| in03.txt |
AC |
26 ms |
4224 KiB |
| in04.txt |
AC |
7 ms |
1280 KiB |
| in05.txt |
AC |
6 ms |
1280 KiB |
| in06.txt |
AC |
7 ms |
1408 KiB |
| in07.txt |
AC |
5 ms |
1280 KiB |
| in08.txt |
AC |
9 ms |
2176 KiB |
| in09.txt |
AC |
6 ms |
1408 KiB |
| in10.txt |
AC |
19 ms |
3584 KiB |
| in11.txt |
AC |
18 ms |
3712 KiB |
| in12.txt |
AC |
32 ms |
6784 KiB |
| in13.txt |
AC |
9 ms |
1664 KiB |
| in14.txt |
AC |
11 ms |
2304 KiB |
| in15.txt |
AC |
8 ms |
1536 KiB |
| in16.txt |
AC |
5 ms |
1280 KiB |
| in17.txt |
AC |
6 ms |
1408 KiB |
| in18.txt |
AC |
6 ms |
1792 KiB |
| in19.txt |
AC |
33 ms |
6912 KiB |
| in20.txt |
AC |
33 ms |
6912 KiB |
| in21.txt |
AC |
33 ms |
6912 KiB |
| in22.txt |
AC |
27 ms |
4352 KiB |
| in23.txt |
AC |
1 ms |
512 KiB |
| sample01.txt |
AC |
1 ms |
512 KiB |
| sample02.txt |
AC |
1 ms |
512 KiB |