結果

問題 No.1366 交換門松列・梅
ユーザー wdiiahkwdiiahk
提出日時 2021-01-30 00:16:36
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 2 ms / 1,000 ms
コード長 5,546 bytes
コンパイル時間 2,461 ms
コンパイル使用メモリ 216,084 KB
最終ジャッジ日時 2025-01-18 09:48:27
ジャッジサーバーID
(参考情報)
judge4 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 12
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

//-fsanitize=undefined,address
//
#pragma GCC optimize("Ofast")
//
#include <bits/stdc++.h>
//#include <atcoder/all>
using namespace std;
//using namespace atcoder;
typedef long long ll;
using vint = vector<int>;
using vll = vector<ll>;
using vbool = vector<bool>;
using vs = vector<string>;
using P = pair<ll, ll>;
using vp = vector<P>;
template <class T>
using arr = vector<vector<T>>;
//
#define REP(i, n) for (ll i = 0; i < ll(n); i++)
#define REPD(i, n) for (ll i = n - 1; i >= 0; i--)
#define FOR(i, a, b) for (ll i = a; i < ll(b); i++)
#define FORD(i, a, b) for (ll i = a; i >= ll(b); i--)
#define FORA(i, I) for (const auto &i : I)
#define ALL(x) x.begin(), x.end()
#define SIZE(x) ll(x.size())
#define INF 9223372036854775807
template <typename T>
bool chmax(T &a, const T &b)
{
if (a < b)
{
a = b; // ab
return true;
}
return false;
}
template <typename T>
bool chmin(T &a, const T &b)
{
if (a > b)
{
a = b; // ab
return true;
}
return false;
}
template <class T>
void pl(T x) { cout << x << " "; }
template <class T>
void pr(T x) { cout << x << endl; }
template <class T>
void prvec(const vector<T> &a)
{
REP(i, a.size() - 1)
{
cout << a[i] << " ";
}
pr(a[a.size() - 1]);
}
template <class T>
void prarr(const arr<T> &a)
{
REP(i, a.size())
if (a[i].empty())
pr("");
else
prvec(a[i]);
}
template <typename T1, typename T2>
pair<T1, T2> operator+(const pair<T1, T2> &l, const pair<T1, T2> &r) { return {l.first + r.first, l.second + r.second}; }
template <typename T1, typename T2>
pair<T1, T2> operator-(const pair<T1, T2> &l, const pair<T1, T2> &r) { return {l.first - r.first, l.second - r.second}; }
template <typename T>
pair<T, T> operator*(const pair<T, T> &l, const T &r) { return {l.first * r, l.second * r}; }
template <typename T>
pair<T, T> operator/(const pair<T, T> &l, const T &r) { return {l.first / r, l.second / r}; }
template <typename T>
istream &operator>>(istream &is, vector<T> &vec)
{
for (auto &v : vec)
is >> v;
return is;
}
template <typename T>
ostream &operator<<(ostream &os, const vector<T> &vec)
{
os << "[";
for (auto v : vec)
os << v << ",";
os << "]";
return os;
}
template <typename T>
ostream &operator<<(ostream &os, const deque<T> &vec)
{
os << "deq[";
for (auto v : vec)
os << v << ",";
os << "]";
return os;
}
template <typename T>
ostream &operator<<(ostream &os, const set<T> &vec)
{
os << "{";
for (auto v : vec)
os << v << ",";
os << "}";
return os;
}
template <typename T>
ostream &operator<<(ostream &os, const unordered_set<T> &vec)
{
os << "{";
for (auto v : vec)
os << v << ",";
os << "}";
return os;
}
template <typename T>
ostream &operator<<(ostream &os, const multiset<T> &vec)
{
os << "{";
for (auto v : vec)
os << v << ",";
os << "}";
return os;
}
template <typename T>
ostream &operator<<(ostream &os, const unordered_multiset<T> &vec)
{
os << "{";
for (auto v : vec)
os << v << ",";
os << "}";
return os;
}
template <typename T1, typename T2>
istream &operator>>(istream &is, pair<T1, T2> &pa)
{
is >> pa.first >> pa.second;
return is;
}
template <typename T1, typename T2>
ostream &operator<<(ostream &os, const pair<T1, T2> &pa)
{
os << "(" << pa.first << "," << pa.second << ")";
return os;
}
template <typename... Ts>
istream &operator>>(istream &is, tuple<Ts...> &theTuple)
{
apply([&is](Ts &...tupleArgs) { ((is >> tupleArgs), ...); }, theTuple);
return is;
}
template <typename... Ts>
ostream &operator<<(ostream &os, const tuple<Ts...> &theTuple)
{
apply([&os](const Ts &...tupleArgs) {
os << '(';
size_t n(0);
((os << tupleArgs << (++n < sizeof...(Ts) ? "," : "")), ...);
os << ')';
},
theTuple);
return os;
}
template <typename TK, typename TV>
ostream &operator<<(ostream &os, const map<TK, TV> &mp)
{
os << "{";
for (auto v : mp)
os << v.first << "=>" << v.second << ",";
os << "}";
return os;
}
template <typename TK, typename TV>
ostream &operator<<(ostream &os, const unordered_map<TK, TV> &mp)
{
os << "{";
for (auto v : mp)
os << v.first << "=>" << v.second << ",";
os << "}";
return os;
}
// const int intinf = numeric_limits<int>::max();
// const ll INF = numeric_limits<ll>::max();
// const P udlr[4] = {{1, 0}, {0, 1}, {-1, 0}, {0, -1}};
//
//
struct Constants
{
ll N;
Constants()
{
N = 3;
}
} C;
struct Args
{
vll a, b;
Args() : a(C.N), b(C.N)
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> a >> b;
}
} args;
struct Solver
{
bool ans;
Solver() : ans(false)
{
}
bool ok(const vll &v)
{
REP(i, C.N - 1)
{
FOR(j, i + 1, C.N)
{
if (v.at(i) == v.at(j))
{
return false;
}
}
}
if (v.at(0) < v.at(1) && v.at(1) > v.at(2))
{
return true;
}
if (v.at(0) > v.at(1) && v.at(1) < v.at(2))
{
return true;
}
return false;
}
//
void solve()
{
if (ok(args.a) && ok(args.b))
{
ans = true;
return;
}
REP(i, C.N)
{
REP(j, C.N)
{
vll a(args.a);
vll b(args.b);
swap(a.at(i), b.at(j));
if (ok(a) && ok(b))
{
ans = true;
return;
}
}
}
}
//
void output()
{
pr(ans ? "Yes" : "No");
}
} s;
int main()
{
s.solve();
s.output();
return 0;
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0