Submission #3989543
Source Code Expand
import java.io.IOException; import java.util.NoSuchElementException; import java.io.InputStream; import java.io.PrintWriter; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.Arrays; import java.util.ArrayList; @SuppressWarnings("unchecked") public class Main { static final int scale = 12; // 約数カウント static int dcount(ArrayList<Integer> ary, int x) { int res = 0; for (Integer i : ary) if (x % i == 0) res++; return res; } public static void main(String[] args) throws IOException { PrintWriter out = new PrintWriter(System.out); final int N = nextInt(); ArrayList<Integer> al = new ArrayList<>(); for (int i = 0; i < N; i++) al.add(nextInt()); BigDecimal bd = BigDecimal.ZERO; for (Integer a : al) { final int cnt = dcount(al, a); if (cnt % 2 == 0) { // 約数 自身含めて 偶数(x) // 1 / 2 bd = bd.add(BigDecimal.valueOf(0.5)); } else { // 約数 自身含めて 奇数(x) // (x + 1) / 2 * x bd = bd.add(BigDecimal.valueOf(cnt + 1) .divide( BigDecimal.valueOf(2) .multiply(BigDecimal.valueOf(cnt)) , scale , RoundingMode.DOWN)); } } out.println(bd.setScale(scale, RoundingMode.DOWN)); out.flush(); } // FastScanner start static final InputStream in = System.in; static final byte[] buffer = new byte[1024]; static int ptr = 0; static int buflen = 0; static boolean hasNextByte() { if (ptr < buflen) { return true; } else { ptr = 0; try { buflen = in.read(buffer); } catch (IOException e) { e.printStackTrace(); } if (buflen <= 0) { return false; } } return true; } static int readByte() { if (hasNextByte()) return buffer[ptr++]; else return -1; } static boolean isPrintableChar(int c) { return 33 <= c && c <= 126; } static boolean hasNext() { while (hasNextByte() && !isPrintableChar(buffer[ptr])) ptr++; return hasNextByte(); } static String next() { if (!hasNext()) throw new NoSuchElementException(); StringBuilder sb = new StringBuilder(); int b = readByte(); while (isPrintableChar(b)) { sb.appendCodePoint(b); b = readByte(); } return sb.toString(); } static long nextLong() { if (!hasNext()) throw new NoSuchElementException(); long n = 0; boolean minus = false; int b = readByte(); if (b == '-') { minus = true; b = readByte(); } if (b < '0' || '9' < b) { throw new NumberFormatException(); } while (true) { if ('0' <= b && b <= '9') { n *= 10; n += b - '0'; } else if(b == -1 || !isPrintableChar(b)) { return minus ? -n : n; } else { throw new NumberFormatException(); } b = readByte(); } } static int nextInt() { long nl = nextLong(); if (nl < Integer.MIN_VALUE || nl > Integer.MAX_VALUE) throw new NumberFormatException(); return (int) nl; } static double nextDouble() { return Double.parseDouble(next()); } // FastScanner end }
Submission Info
Submission Time | |
---|---|
Task | C - コイン |
User | ShinjiSHIBATA |
Language | Java8 (OpenJDK 1.8.0) |
Score | 100 |
Code Size | 3909 Byte |
Status | AC |
Exec Time | 82 ms |
Memory | 23252 KB |
Judge Result
Set Name | Sample | Subtask1 | Subtask2 | ||||||
---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 99 / 99 | 1 / 1 | ||||||
Status |
|
|
|
Set Name | Test Cases |
---|---|
Sample | sample_01.txt, sample_02.txt, sample_03.txt |
Subtask1 | subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt |
Subtask2 | subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask2_13.txt, subtask2_14.txt, subtask2_15.txt, subtask2_16.txt, subtask2_17.txt, subtask2_18.txt, subtask2_19.txt, subtask2_20.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample_01.txt | AC | 82 ms | 20948 KB |
sample_02.txt | AC | 75 ms | 19028 KB |
sample_03.txt | AC | 74 ms | 19668 KB |
subtask1_01.txt | AC | 72 ms | 22228 KB |
subtask1_02.txt | AC | 73 ms | 19796 KB |
subtask1_03.txt | AC | 72 ms | 19796 KB |
subtask1_04.txt | AC | 74 ms | 21332 KB |
subtask1_05.txt | AC | 75 ms | 18772 KB |
subtask1_06.txt | AC | 72 ms | 19796 KB |
subtask1_07.txt | AC | 73 ms | 21076 KB |
subtask1_08.txt | AC | 74 ms | 20564 KB |
subtask1_09.txt | AC | 73 ms | 21716 KB |
subtask1_10.txt | AC | 75 ms | 20692 KB |
subtask1_11.txt | AC | 75 ms | 20564 KB |
subtask1_12.txt | AC | 73 ms | 20820 KB |
subtask1_13.txt | AC | 75 ms | 20820 KB |
subtask1_14.txt | AC | 71 ms | 17876 KB |
subtask1_15.txt | AC | 75 ms | 21332 KB |
subtask1_16.txt | AC | 71 ms | 19412 KB |
subtask1_17.txt | AC | 73 ms | 23252 KB |
subtask1_18.txt | AC | 73 ms | 20564 KB |
subtask1_19.txt | AC | 74 ms | 20692 KB |
subtask1_20.txt | AC | 72 ms | 17748 KB |
subtask2_01.txt | AC | 76 ms | 18260 KB |
subtask2_02.txt | AC | 72 ms | 17236 KB |
subtask2_03.txt | AC | 73 ms | 20692 KB |
subtask2_04.txt | AC | 74 ms | 20180 KB |
subtask2_05.txt | AC | 78 ms | 20692 KB |
subtask2_06.txt | AC | 77 ms | 19796 KB |
subtask2_07.txt | AC | 73 ms | 20692 KB |
subtask2_08.txt | AC | 76 ms | 19924 KB |
subtask2_09.txt | AC | 77 ms | 18644 KB |
subtask2_10.txt | AC | 75 ms | 19540 KB |
subtask2_11.txt | AC | 77 ms | 19668 KB |
subtask2_12.txt | AC | 76 ms | 17744 KB |
subtask2_13.txt | AC | 74 ms | 20820 KB |
subtask2_14.txt | AC | 78 ms | 19536 KB |
subtask2_15.txt | AC | 77 ms | 19028 KB |
subtask2_16.txt | AC | 75 ms | 19796 KB |
subtask2_17.txt | AC | 77 ms | 19668 KB |
subtask2_18.txt | AC | 73 ms | 20820 KB |
subtask2_19.txt | AC | 75 ms | 20820 KB |
subtask2_20.txt | AC | 76 ms | 22100 KB |