結果
問題 | No.274 The Wall |
ユーザー |
|
提出日時 | 2020-05-22 03:07:50 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 3 ms / 2,000 ms |
コード長 | 2,304 bytes |
コンパイル時間 | 1,691 ms |
コンパイル使用メモリ | 173,364 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-06-22 02:37:18 |
合計ジャッジ時間 | 2,567 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 22 |
ソースコード
#include <bits/stdc++.h>using namespace std;using ll = long long;constexpr char newl = '\n';int main() {cin.tie(nullptr);ios::sync_with_stdio(false);int n, m;cin >> n >> m;vector< vector<int> > memo(m);for (int i = 0; i < n; i++) {int l, r;cin >> l >> r;int tmp = m - 1 - r;if (tmp < l) {r = m - 1 - l;l = tmp;}memo[l].push_back(r);}vector<int> used(m, false);for (int i = 0; i < m; ++i) {if (memo[i].empty()) continue;int hoge = memo[i].size() + used[i];if (hoge > 2) {cout << "NO\n";return 0;}if (hoge == 2 && !used[i]) {if (memo[i][0] > memo[i][1]) swap(memo[i][0], memo[i][1]);int l = i;int r = memo[i][1];int l2 = i;int r2 = memo[i][0];for (int j = i; j <= memo[i][1]; j++) {if (used[j]) {if (j <= memo[i][0]) {cout << "NO\n";return 0;} else if (j <= memo[i][1]) {swap(r, r2);break;}}}{int tmp = m - 1 - r2;r2 = m - 1 - l2;l2 = tmp;}for (int j = l; j <= r; j++) {if (used[j]) {cout << "NO\n";return 0;}used[j] = true;}for (int j = l2; j <= r2; j++) {if (used[j]) {cout << "NO\n";return 0;}used[j] = true;}} else {int l = i;int r = memo[i][0];if (used[i]) {int tmp = m - 1 - r;r = m - 1 - l;l = tmp;}for (int j = l; j <= r; j++) {if (used[j]) {cout << "NO\n";return 0;}used[j] = true;}}}cout << "YES\n";return 0;}