Submission #1754067


Source Code Expand

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

public class Main {
    static IO io = new IO();
    public static void main(String[] args) {

        int w = io.nextInt();
        int h = io.nextInt();
        int n = io.nextInt();
        int x[] = new int[n];
        int y[] = new int[n];
        for (int i=0; i<n; i++) {
            x[i] = io.nextInt();
            y[i] = io.nextInt();
        }

        Deque<List<Integer>> que = new ArrayDeque<>();
        Deque<List<Integer>> tmp = new ArrayDeque<>();
        for (int i=0; i<n; i++) {
            List<Integer> init = new ArrayList<>();
            init.add(i);
            tmp.offer(init);
        }

        // 並び方の列挙
        while (!tmp.isEmpty()) {
            List<Integer> poll = tmp.poll();
            if (poll.size()==n) {
                que.offer(poll);
            }
            for (int i=0; i<n; i++) {
                if (!poll.contains(i)) {
                    List<Integer> next = new ArrayList<>(poll);
                    next.add(i);
                    tmp.offer(next);
                }
            }
        }

        long ans = 0;
        int dx[] = {0, 1, 0, -1};
        int dy[] = {1, 0, -1, 0};

        // 総当たり計算
        while (!que.isEmpty()) {
            List<Integer> poll = que.poll();
            boolean map[][] = new boolean[w+1][h+1];
            long pre = 0;
            for (int k=0; k<n; k++) {
                int now = poll.get(k);
                // まず装置の足元の金塊を回収
                pre++;
                map[x[now]][y[now]] = true;
                //System.out.println("(" + x[now] + "," + y[now] + ")の金塊回収装置を使います");
                for (int i=0; i<4; i++) {
                    int j = 1;
                    while (1<=x[now]+j*dx[i] && x[now]+j*dx[i]<=w && 1<=y[now]+j*dy[i] && y[now]+j*dy[i]<=h
                            && !map[x[now]+j*dx[i]][y[now]+j*dy[i]]) {
                        map[x[now]+j*dx[i]][y[now]+j*dy[i]] = true;
                        pre++;
                        //System.out.println("(" + (x[now]+j*dx[i]) + "," + (y[now]+j*dy[i]) + ")を回収");
                        j++;
                    }
                }
            }
            ans = Math.max(pre, ans);
        }

        System.out.println(ans);

    }

    static class IO extends PrintWriter {
        private final InputStream in;
        private final byte[] buffer = new byte[1024];
        private int ptr = 0;
        private int buflen = 0;

        IO() {
            this(System.in);
        }

        IO(InputStream source) {
            super(System.out);
            this.in = source;
        }

        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;
        }

        int readByte() {
            if (hasNextByte()) return buffer[ptr++];
            else return -1;
        }

        boolean isPrintableChar(int c) {
            return 33 <= c && c <= 126;
        }

        void skipUnprintable() {
            while (hasNextByte() && !isPrintableChar(buffer[ptr])) ptr++;
        }

        boolean hasNext() {
            skipUnprintable();
            return hasNextByte();
        }

        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();
            }
        }

        int nextInt() {
            long nl = nextLong();
            if (nl < Integer.MIN_VALUE || nl > Integer.MAX_VALUE) throw new NumberFormatException();
            return (int) nl;
        }

        public void close() {
            super.close();
            try {
                in.close();
            } catch (IOException ignored) {
            }
        }
    }
}

Submission Info

Submission Time
Task D - 金塊ゲーム
User creep04
Language Java8 (OpenJDK 1.8.0)
Score 80
Code Size 4715 Byte
Status TLE
Exec Time 4215 ms
Memory 861652 KB

Judge Result

Set Name Sample Subtask1 Subtask2 Subtask3
Score / Max Score 0 / 0 80 / 80 0 / 19 0 / 1
Status
AC × 3
AC × 25
AC × 25
TLE × 25
AC × 25
TLE × 49
MLE × 1
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, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.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, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.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, subtask2_21.txt, subtask2_22.txt, subtask2_23.txt, subtask2_24.txt, subtask2_25.txt
Subtask3 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, 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, subtask2_21.txt, subtask2_22.txt, subtask2_23.txt, subtask2_24.txt, subtask2_25.txt, subtask3_01.txt, subtask3_02.txt, subtask3_03.txt, subtask3_04.txt, subtask3_05.txt, subtask3_06.txt, subtask3_07.txt, subtask3_08.txt, subtask3_09.txt, subtask3_10.txt, subtask3_11.txt, subtask3_12.txt, subtask3_13.txt, subtask3_14.txt, subtask3_15.txt, subtask3_16.txt, subtask3_17.txt, subtask3_18.txt, subtask3_19.txt, subtask3_20.txt, subtask3_21.txt, subtask3_22.txt, subtask3_23.txt, subtask3_24.txt, subtask3_25.txt
Case Name Status Exec Time Memory
sample_01.txt AC 70 ms 20820 KB
sample_02.txt AC 70 ms 19156 KB
sample_03.txt AC 258 ms 42092 KB
subtask1_01.txt AC 71 ms 19152 KB
subtask1_02.txt AC 69 ms 21076 KB
subtask1_03.txt AC 247 ms 41832 KB
subtask1_04.txt AC 254 ms 52732 KB
subtask1_05.txt AC 68 ms 21204 KB
subtask1_06.txt AC 69 ms 21204 KB
subtask1_07.txt AC 74 ms 19284 KB
subtask1_08.txt AC 67 ms 21204 KB
subtask1_09.txt AC 84 ms 19668 KB
subtask1_10.txt AC 67 ms 17492 KB
subtask1_11.txt AC 71 ms 16852 KB
subtask1_12.txt AC 95 ms 20308 KB
subtask1_13.txt AC 109 ms 22612 KB
subtask1_14.txt AC 114 ms 27212 KB
subtask1_15.txt AC 427 ms 148312 KB
subtask1_16.txt AC 273 ms 58476 KB
subtask1_17.txt AC 337 ms 63560 KB
subtask1_18.txt AC 252 ms 45844 KB
subtask1_19.txt AC 250 ms 41188 KB
subtask1_20.txt AC 248 ms 41620 KB
subtask1_21.txt AC 308 ms 63200 KB
subtask1_22.txt AC 306 ms 63368 KB
subtask1_23.txt AC 256 ms 43828 KB
subtask1_24.txt AC 385 ms 104536 KB
subtask1_25.txt AC 419 ms 150244 KB
subtask2_01.txt TLE 4213 ms 573248 KB
subtask2_02.txt TLE 4213 ms 572380 KB
subtask2_03.txt TLE 4213 ms 611412 KB
subtask2_04.txt TLE 4213 ms 610548 KB
subtask2_05.txt TLE 4211 ms 575580 KB
subtask2_06.txt TLE 4213 ms 609816 KB
subtask2_07.txt TLE 4213 ms 552756 KB
subtask2_08.txt TLE 4212 ms 605968 KB
subtask2_09.txt TLE 4213 ms 620800 KB
subtask2_10.txt TLE 4213 ms 581120 KB
subtask2_11.txt TLE 4213 ms 619104 KB
subtask2_12.txt TLE 4213 ms 617048 KB
subtask2_13.txt TLE 4212 ms 608464 KB
subtask2_14.txt TLE 4212 ms 604208 KB
subtask2_15.txt TLE 4211 ms 543260 KB
subtask2_16.txt TLE 4213 ms 562440 KB
subtask2_17.txt TLE 4213 ms 623548 KB
subtask2_18.txt TLE 4213 ms 620712 KB
subtask2_19.txt TLE 4213 ms 621004 KB
subtask2_20.txt TLE 4213 ms 620720 KB
subtask2_21.txt TLE 4213 ms 614884 KB
subtask2_22.txt TLE 4213 ms 621456 KB
subtask2_23.txt TLE 4213 ms 602960 KB
subtask2_24.txt TLE 4213 ms 618408 KB
subtask2_25.txt TLE 4213 ms 622748 KB
subtask3_01.txt MLE 569 ms 861652 KB
subtask3_02.txt TLE 4213 ms 572644 KB
subtask3_03.txt TLE 4213 ms 572736 KB
subtask3_04.txt TLE 4215 ms 617556 KB
subtask3_05.txt TLE 4213 ms 594400 KB
subtask3_06.txt TLE 4213 ms 608428 KB
subtask3_07.txt TLE 4213 ms 617336 KB
subtask3_08.txt TLE 4213 ms 590672 KB
subtask3_09.txt TLE 4209 ms 612632 KB
subtask3_10.txt TLE 4213 ms 621216 KB
subtask3_11.txt TLE 4212 ms 606816 KB
subtask3_12.txt TLE 4213 ms 620324 KB
subtask3_13.txt TLE 4213 ms 619880 KB
subtask3_14.txt TLE 4213 ms 621980 KB
subtask3_15.txt TLE 4212 ms 611348 KB
subtask3_16.txt TLE 4212 ms 611072 KB
subtask3_17.txt TLE 4213 ms 620784 KB
subtask3_18.txt TLE 4212 ms 576008 KB
subtask3_19.txt TLE 4213 ms 621428 KB
subtask3_20.txt TLE 4212 ms 609764 KB
subtask3_21.txt TLE 4213 ms 622564 KB
subtask3_22.txt TLE 4213 ms 614656 KB
subtask3_23.txt TLE 4213 ms 620816 KB
subtask3_24.txt TLE 4212 ms 604948 KB
subtask3_25.txt TLE 4213 ms 621464 KB