結果
問題 | No.274 The Wall |
ユーザー |
![]() |
提出日時 | 2022-11-14 02:08:12 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 329 ms / 2,000 ms |
コード長 | 785 bytes |
コンパイル時間 | 3,413 ms |
コンパイル使用メモリ | 254,844 KB |
最終ジャッジ日時 | 2025-02-08 20:10:11 |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 22 |
ソースコード
#include<bits/stdc++.h>#include<atcoder/all>using namespace std;using namespace atcoder;typedef modint998244353 mint;typedef long long ll;int main(){int n, m; cin >> n >> m;scc_graph scc(2*n);vector<int> l(2*n), r(2*n);for (int i=0; i<n; i++){cin >> l[i] >> r[i];l[i+n] = m-1-r[i];r[i+n] = m-1-l[i];}for (int i=0; i<2*n; i++){for (int j=i+1; j<2*n; j++){if (min(r[i], r[j]) + 1 - max(l[i], l[j]) > 0){scc.add_edge(i, (n+j)%(2*n));scc.add_edge(j, (n+i)%(2*n));}}}vector<vector<int>> g = scc.scc();vector<int> moto(2*n);for (int i=0; i<g.size(); i++){for (int j: g[i]){moto[j] = i;}}for (int i=0; i<n; i++){if (moto[i] == moto[n+i]){cout << "NO" << endl;return 0;}}cout << "YES" << endl;}