結果
| 問題 |
No.2463 ストレートフラッシュ
|
| コンテスト | |
| ユーザー |
Today03
|
| 提出日時 | 2023-09-08 22:27:52 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 956 bytes |
| コンパイル時間 | 1,880 ms |
| コンパイル使用メモリ | 206,012 KB |
| 最終ジャッジ日時 | 2025-02-16 20:07:15 |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 10 TLE * 1 -- * 11 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
vector<pair<int, int>> D(n * m);
vector<vector<int>> nm(m, vector<int>(n));
for (int i = 0; i < n * m; i++) {
int u, v;
cin >> u >> v;
u--;
v--;
nm[v][u] = max(i - 4, 0);
D[i] = make_pair(v, u);
}
int ans = INT_MAX;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n - 3; j++) {
set<pair<int, int>> mem;
int k = j;
do {
mem.insert(make_pair(i, k));
(++k) %= n;
} while (k != (j + 5) % n);
set<pair<int, int>> cd;
for (pair<int, int> x : mem) {
if (nm[x.first][x.second] == 0) {
cd.insert(x);
}
}
int time = 5;
int res = 0;
while (mem != cd) {
int add = min(n * m - time, 5 - (int)cd.size());
for (int k = 0; k < add; k++) {
if (mem.count(D[time + k])) {
cd.insert(D[time + k]);
}
}
time += add;
res++;
}
ans = min(ans, res);
}
}
cout << ans << endl;
}
Today03