結果
| 問題 | No.133 カードゲーム | 
| コンテスト | |
| ユーザー |  tomotan_uki | 
| 提出日時 | 2019-10-24 11:32:37 | 
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 2 ms / 5,000 ms | 
| コード長 | 537 bytes | 
| コンパイル時間 | 1,391 ms | 
| コンパイル使用メモリ | 163,060 KB | 
| 実行使用メモリ | 5,376 KB | 
| 最終ジャッジ日時 | 2024-07-08 11:20:41 | 
| 合計ジャッジ時間 | 2,078 ms | 
| ジャッジサーバーID (参考情報) | judge4 / judge5 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 4 | 
| other | AC * 19 | 
ソースコード
#include <bits/stdc++.h>
using namespace std;
 
int main() {
  int N;
  cin >> N;
  
  vector<int> A(N);
  vector<int> B(N);
  for (int i=0; i<N; i++) cin >> A.at(i);
  for (int i=0; i<N; i++) cin >> B.at(i);
  
  double num = 1.0;
  for (int i=1; i<=N; i++) num *= i; 
  double res = 0;
  int n = N/2;
  sort(B.begin(), B.end());
  do {
    int c = 0;
    for(int i=0; i<N; i++){
      if(A.at(i) > B.at(i)) c++;
    }
    if(c > n) res++;
  } while (next_permutation(B.begin(), B.end()));
  cout << res / num << endl;
  
  return 0;
}
            
            
            
        