結果

問題 No.133 カードゲーム
ユーザー threecourse
提出日時 2018-08-11 12:36:25
言語 C#(csc)
(csc 3.9.0)
結果
AC  
実行時間 31 ms / 5,000 ms
コード長 3,336 bytes
コンパイル時間 1,157 ms
コンパイル使用メモリ 107,776 KB
実行使用メモリ 19,968 KB
最終ジャッジ日時 2024-09-23 06:10:34
合計ジャッジ時間 2,586 ms
ジャッジサーバーID
(参考情報)
judge2 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 19
権限があれば一括ダウンロードができます
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc)
Copyright (C) Microsoft Corporation. All rights reserved.

ソースコード

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

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Competitive
{
internal class Solution
{
public int N;
public int[] A, B;
public int count;
public int win;
public List<int[]> orders;
public void Run()
{
N = Input.ReadInt();
A = Input.ReadIntArray();
B = Input.ReadIntArray();
orders = new List<int[]>();
count = 0;
win = 0;
var pm = new Permutation(N, Process);
pm.DFSRun();
for (int i = 0; i < orders.Count; i++)
for(int j = 0; j < orders.Count; j++)
{
int w = 0;
int l = 0;
for (int k = 0; k < N; k++)
{
if (A[orders[i][k]] > B[orders[j][k]]) w++;
else l++;
}
if (w > l) win++;
count++;
}
Console.WriteLine(((double)win)/ count);
}
public void Process(int[] order)
{
orders.Add((int[])order.Clone());
}
}
// libs ----------
// Permutation
class Permutation
{
public int N;
public bool[] F;
public int[] V;
public Action<int[]> Process;
public Permutation(int N, Action<int[]> process)
{
this.N = N;
Process = process;
}
public void DFSRun()
{
F = new bool[N];
V = new int[N];
DFS(0);
}
private void DFS(int i)
{
if (i == N)
{
Process(V);
}
else
{
for (int k = 0; k < N; k++)
if (!F[k])
{
F[k] = true;
V[i] = k;
DFS(i + 1);
F[k] = false;
}
}
}
}
// common ----------
internal static class Input
{
public static string ReadString()
{
string line = Console.ReadLine();
return line;
}
public static int ReadInt()
{
string line = Console.ReadLine();
return int.Parse(line);
}
public static int[] ReadIntArray()
{
string line = Console.ReadLine();
return line.Split(' ').Select(int.Parse).ToArray();
}
public static long ReadLong()
{
string line = Console.ReadLine();
return long.Parse(line);
}
public static long[] ReadLongArray()
{
string line = Console.ReadLine();
return line.Split(' ').Select(long.Parse).ToArray();
}
public static double[] ReadDoubleArray()
{
string line = Console.ReadLine();
return line.Split(' ').Select(double.Parse).ToArray();
}
}
internal class Program
{
public static void Main(string[] args)
{
var s = new Solution();
s.Run();
}
}
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0