Submission #1366064


Source Code Expand

import java.io.*;
import java.math.*;
import java.util.*;

public class Main {
    private static boolean debug = false;
    private static boolean elapsed = false;

    private static PrintWriter _out = new PrintWriter(System.out);
    private static PrintWriter _err = new PrintWriter(System.err);

    private void solve(Scanner sc) {
        int N = sc.nextInt();
        int[] a = new int[N];
        for (int i = 0; i < N; ++i) {
            a[i] = sc.nextInt();
        }
        IntSummaryStatistics stat = Arrays.stream(a).summaryStatistics();
        if (stat.getMax() == stat.getMin()) {
            _out.println(0);
            return;
        } else if (stat.getSum() % stat.getCount() != 0) {
            _out.println(-1);
            return;
        }

        int target = (int)stat.getAverage();
        boolean[] b = new boolean[N - 1];

        int idx = 0;
        do {
            int sum = a[idx];
            int cnt = 1;
            ++idx;
            while (idx < N && (sum % cnt != 0 || sum / cnt != target)) {
                if (idx > 0) {
                    b[idx - 1] = true;
                }
                sum += a[idx];
                ++cnt;
                ++idx;
            }
        } while (idx < N);

        int cnt = 0;
        for (int i = 0; i < b.length; ++i) {
            if (b[i]) {
                ++cnt;
            }
        }
        _out.println(cnt);
    }
    private static BigInteger C(long n, long r) {
        BigInteger res = BigInteger.ONE;
        for (long i = n; i > n - r; --i) {
            res = res.multiply(BigInteger.valueOf(i));
        }
        for (long i = r; i > 1; --i) {
            res = res.divide(BigInteger.valueOf(i));
        }
        return res;
    }
    private static BigInteger P(long n, long r) {
        BigInteger res = BigInteger.ONE;
        for (long i = n; i > n - r; --i) {
            res = res.multiply(BigInteger.valueOf(i));
        }
        return res;
    }
    /*
     * 10^10 > Integer.MAX_VALUE = 2147483647 > 10^9
     * 10^19 > Long.MAX_VALUE = 9223372036854775807L > 10^18
     */
    public static void main(String[] args) {
        long S = System.currentTimeMillis();

        Scanner sc = new Scanner(System.in);
        new Main().solve(sc);
        _out.flush();

        long G = System.currentTimeMillis();
        if (elapsed) {
            _err.println((G - S) + "ms");
        }
        _err.flush();
    }
}

Submission Info

Submission Time
Task B - 島と橋
User hhelibex
Language Java8 (OpenJDK 1.8.0)
Score 100
Code Size 2519 Byte
Status AC
Exec Time 194 ms
Memory 28756 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 4
AC × 38
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt
All sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, 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, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask1_26.txt, subtask1_27.txt, subtask1_28.txt, subtask1_29.txt, subtask1_30.txt, subtask1_31.txt, subtask1_32.txt, subtask1_33.txt, subtask1_34.txt
Case Name Status Exec Time Memory
sample_01.txt AC 178 ms 26700 KB
sample_02.txt AC 169 ms 26196 KB
sample_03.txt AC 170 ms 26452 KB
sample_04.txt AC 169 ms 26836 KB
subtask1_01.txt AC 179 ms 24916 KB
subtask1_02.txt AC 177 ms 26196 KB
subtask1_03.txt AC 184 ms 25676 KB
subtask1_04.txt AC 170 ms 27220 KB
subtask1_05.txt AC 176 ms 24660 KB
subtask1_06.txt AC 187 ms 24276 KB
subtask1_07.txt AC 178 ms 24656 KB
subtask1_08.txt AC 178 ms 24532 KB
subtask1_09.txt AC 184 ms 27092 KB
subtask1_10.txt AC 179 ms 26452 KB
subtask1_11.txt AC 194 ms 28756 KB
subtask1_12.txt AC 185 ms 26828 KB
subtask1_13.txt AC 178 ms 24788 KB
subtask1_14.txt AC 185 ms 24528 KB
subtask1_15.txt AC 181 ms 24788 KB
subtask1_16.txt AC 186 ms 25168 KB
subtask1_17.txt AC 187 ms 26708 KB
subtask1_18.txt AC 186 ms 24788 KB
subtask1_19.txt AC 185 ms 24916 KB
subtask1_20.txt AC 185 ms 26580 KB
subtask1_21.txt AC 176 ms 26576 KB
subtask1_22.txt AC 187 ms 24404 KB
subtask1_23.txt AC 188 ms 26700 KB
subtask1_24.txt AC 173 ms 27092 KB
subtask1_25.txt AC 181 ms 24656 KB
subtask1_26.txt AC 178 ms 26580 KB
subtask1_27.txt AC 187 ms 24788 KB
subtask1_28.txt AC 191 ms 24788 KB
subtask1_29.txt AC 182 ms 26708 KB
subtask1_30.txt AC 173 ms 25044 KB
subtask1_31.txt AC 188 ms 25172 KB
subtask1_32.txt AC 179 ms 26708 KB
subtask1_33.txt AC 191 ms 26836 KB
subtask1_34.txt AC 188 ms 25168 KB