結果

問題 No.133 カードゲーム
ユーザー neko
提出日時 2020-02-10 01:53:50
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 2 ms / 5,000 ms
コード長 3,285 bytes
コンパイル時間 859 ms
コンパイル使用メモリ 104,716 KB
実行使用メモリ 5,248 KB
最終ジャッジ日時 2024-10-01 06:10:25
合計ジャッジ時間 1,537 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 19
権限があれば一括ダウンロードができます

ソースコード

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

// #include <bits/stdc++.h>
#include <iostream> // cout, endl, cin
#include <iomanip> // setprecision
#include <string> // string, to_string, stoi
#include <vector> // vector
#include <algorithm> // min, max, swap, sort, reverse, lower_bound, upper_bound
#include <utility> // pair, make_pair
#include <tuple> // tuple, make_tuple
#include <cstdint> // int64_t, int*_t
#include <cstdio> // printf
#include <map> // map
#include <queue> // queue, priority_queue
#include <set> // set
#include <stack> // stack
#include <deque> // deque
#include <unordered_map> // unordered_map
#include <unordered_set> // unordered_set
#include <bitset> // bitset
#include <cctype> // isupper, islower, isdigit, toupper, tolower
#include <cmath> // pow
// #define int long long
// loop
#define FOR(i, a, b) for (int i = (a); i < (b); i++) // a ~ b-1 (ascending)
#define REP(i, n) FOR(i, 0, n) // 0 ~ n-1
#define NREP(i, n) FOR(i, 1, n + 1) // 1 ~ n
#define RFOR(i, a, b) for (int i = (a); i >= (b); i--) // a ~ b (descending)
#define RREP(i, n) RFOR(i, n, 0) // n ~ 0
#define RNREP(i, n) RFOR(i, n, 1) // n ~ 1
// container operation
#define all(v) v.begin(), v.end()
#define EACH(i, c) for (auto i = (c).begin(); i != (c).end(); i++)
#define ASORT(c) std::sort((c).begin(), (c).end())
#define DSORT(c) std::sort((c).begin(), (c).end(), std::greater<typeof((c).front())>())
#define SIZE(x) ((int)(x).size())
// union of two containers
template <typename T>
void container_union(T &c1, T &c2, T &c3) {
std::vector<int> vec;
std::set_union(c1.begin(), c1.end(),
c2.begin(), c2.end(),
std::back_inserter(vec));
T tmp(vec.begin(), vec.end());
c3 = tmp;
}
// chmax, chmin
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;
}
// grid-search
std::vector<int> dx = {1, -1, 0, 0};
std::vector<int> dy = {0, 0, 1, -1};
// debug
#define check(x) std::cout << #x << " = " << x << '\n'
// print
#define cout(x) std::cout << x << '\n'
// type alias
using VI = std::vector<int>;
using VII = std::vector<VI>;
using VB = std::vector<bool>;
using VBB = std::vector<VB>;
using VS = std::vector<std::string>;
using PII = std::pair<int, int>;
// yes/no
std::string yes = "Yes";
std::string no = "No";
std::string YES = "YES";
std::string NO = "NO";
void solve();
signed main() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
std::cout << std::fixed << std::setprecision(10);
solve();
return 0;
}
void solve() {
int n;
std::cin >> n;
VI a(n), b(n), pa(n), pb(n);
REP(i, n) {
std::cin >> a.at(i);
pa.at(i) = i;
}
REP(i, n) {
std::cin >> b.at(i);
pb.at(i) = i;
}
int wa = 0;
int g = 0;
do {
do {
int ca = 0; int cb = 0;
REP(i, n) {
if (a.at(pa.at(i)) > b.at(pb.at(i))) {
ca++;
} else if (b.at(pb.at(i)) > a.at(pa.at(i))) {
cb++;
}
}
if (ca > cb) {
wa++;
}
g++;
} while (std::next_permutation(all(pb)));
} while (std::next_permutation(all(pa)));
cout(1. * wa / g);
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0