結果
問題 | No.133 カードゲーム |
ユーザー |
![]() |
提出日時 | 2019-01-12 20:09:01 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 58 ms / 5,000 ms |
コード長 | 5,411 bytes |
コンパイル時間 | 2,387 ms |
コンパイル使用メモリ | 79,620 KB |
実行使用メモリ | 37,668 KB |
最終ジャッジ日時 | 2024-12-23 00:20:36 |
合計ジャッジ時間 | 4,716 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 19 |
ソースコード
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.PrintWriter;import java.util.Arrays;public class Main {public static void main(String[] args) {InputStream inputStream = System.in;OutputStream outputStream = System.out;MyInput in = new MyInput(inputStream);PrintWriter out = new PrintWriter(outputStream);TaskX solver = new TaskX();solver.solve(1, in, out);out.close();}static int INF = 1 << 30;static long LINF = 1L << 55;static int MOD = 1000000007;static int[] mh4 = { 0, -1, 1, 0 };static int[] mw4 = { -1, 0, 0, 1 };static int[] mh8 = { -1, -1, -1, 0, 0, 1, 1, 1 };static int[] mw8 = { -1, 0, 1, -1, 1, -1, 0, 1 };static class TaskX {public void solve(int testNumber, MyInput in, PrintWriter out) {int n = in.nextInt();int[] a = in.nextIntArray(n), b = in.nextIntArray(n);Arrays.sort(a);Arrays.sort(b);double win = 0, total = 0;do {int w = 0, l = 0;for (int i = 0; i < n; i++) {if (a[i] > b[i]) {w++;} else if (a[i] < b[i]) {l++;}}if (w > l) win++;total++;} while (Permutation.next(a));out.println(win / total);}}static class Permutation {public static boolean next(int[] a) {int n = a.length;int i = n - 1;while (i > 0 && a[i - 1] >= a[i])i--;if (i <= 0)return false;int j = n - 1;while (a[j] <= a[i - 1])j--;swap(a, i - 1, j);int k = n - 1;while (i < k)swap(a, i++, k--);return true;}private static void swap(int[] a, int i, int j) {int tmp = a[i];a[i] = a[j];a[j] = tmp;}}static class MyInput {private final BufferedReader in;private static int pos;private static int readLen;private static final char[] buffer = new char[1024 * 8];private static char[] str = new char[500 * 8 * 2];private static boolean[] isDigit = new boolean[256];private static boolean[] isSpace = new boolean[256];private static boolean[] isLineSep = new boolean[256];static {for (int i = 0; i < 10; i++) {isDigit['0' + i] = true;}isDigit['-'] = true;isSpace[' '] = isSpace['\r'] = isSpace['\n'] = isSpace['\t'] = true;isLineSep['\r'] = isLineSep['\n'] = true;}public MyInput(InputStream is) {in = new BufferedReader(new InputStreamReader(is));}public int read() {if (pos >= readLen) {pos = 0;try {readLen = in.read(buffer);} catch (IOException e) {throw new RuntimeException();}if (readLen <= 0) {throw new MyInput.EndOfFileRuntimeException();}}return buffer[pos++];}public int nextInt() {int len = 0;str[len++] = nextChar();len = reads(len, isSpace);int i = 0;int ret = 0;if (str[0] == '-') {i = 1;}for (; i < len; i++)ret = ret * 10 + str[i] - '0';if (str[0] == '-') {ret = -ret;}return ret;}public long nextLong() {int len = 0;str[len++] = nextChar();len = reads(len, isSpace);int i = 0;long ret = 0;if (str[0] == '-') {i = 1;}for (; i < len; i++)ret = ret * 10 + str[i] - '0';if (str[0] == '-') {ret = -ret;}return ret;}public char nextChar() {while (true) {final int c = read();if (!isSpace[c]) {return (char) c;}}}public String nextString() {return new String(nextChars());}public char[] nextChars() {int len = 0;str[len++] = nextChar();len = reads(len, isSpace);return Arrays.copyOf(str, len);}int reads(int len, boolean[] accept) {try {while (true) {final int c = read();if (accept[c]) {break;}if (str.length == len) {char[] rep = new char[str.length * 3 / 2];System.arraycopy(str, 0, rep, 0, str.length);str = rep;}str[len++] = (char) c;}} catch (MyInput.EndOfFileRuntimeException e) {}return len;}public int[] nextIntArray(final int n) {final int[] res = new int[n];for (int i = 0; i < n; i++) {res[i] = nextInt();}return res;}public int[] nextIntArray1Index(final int n) {final int[] res = new int[n + 1];for (int i = 1; i < n + 1; i++) {res[i] = nextInt();}return res;}public int[] nextIntArrayDec(final int n) {final int[] res = new int[n];for (int i = 0; i < n; i++) {res[i] = nextInt() - 1;}return res;}public long[] nextLongArray(final int n) {final long[] res = new long[n];for (int i = 0; i < n; i++) {res[i] = nextLong();}return res;}public long[] nextLongArray1Index(final int n) {final long[] res = new long[n + 1];for (int i = 1; i < n + 1; i++) {res[i] = nextLong();}return res;}public long[] nextLongArrayDec(final int n) {final long[] res = new long[n];for (int i = 0; i < n; i++) {res[i] = nextLong() - 1;}return res;}public double nextDouble() {return Double.parseDouble(nextString());}public double[] nextDoubleArray(int n) {double[] res = new double[n];for (int i = 0; i < n; i++) {res[i] = nextDouble();}return res;}static class EndOfFileRuntimeException extends RuntimeException {}}}