Submission #3582794


Source Code Expand

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.*;

public class Main {

    static int N, M;
    static int X0, A, P;

    public static void main(String[] args) {
        FastScanner sc = new FastScanner(System.in);
        N = sc.nextInt();
        M = sc.nextInt();
        X0 = sc.nextInt();
        A = sc.nextInt();
        P = sc.nextInt();

        System.out.println(solve());
    }

    static long solve() {
        Student[] S = new Student[N*M];
        for (int i = 0; i < N; i++) {
            for (int j = 0; j < M; j++) {
                int idx = i*M+j;
                int x = (int)((X0 + ((long)idx*A)) % P);
                S[idx] = new Student(i, j, x);
            }
        }
        Arrays.sort(S, Comparator.comparingInt(s -> s.x));

        boolean[] row = new boolean[M];
        PriorityQueue<Student> dq = new PriorityQueue<>( Comparator.comparingInt(s -> s.j) );
        long ans = 0;
        for (int i = 0; i < N; i++) {
            Arrays.fill(row, false);
            int rowAns = 0;

            for (int j = 0; j < M; j++) {
                Student s = S[i*M+j];
                if( s.i == i ) {
                    row[s.j] = true;
                } else {
                    rowAns += Math.abs(s.i - i);
                    dq.add(s);
                }
            }

            for (int j = 0; j < M; j++) {
                if( !row[j] ) {
                    Student s = dq.poll();
                    rowAns += Math.abs(s.j - j);
                }
            }

            ans += rowAns;
        }
        return ans;
    }

    static class Student {
        int i, j; // 元の位置
        int x; // 成績

        public Student(int i, int j, int x) {
            this.i = i;
            this.j = j;
            this.x = x;
        }

        int idx() {
            return i * M + j;
        }
    }

    @SuppressWarnings("unused")
    static class FastScanner {
        private BufferedReader reader;
        private StringTokenizer tokenizer;

        FastScanner(InputStream in) {
            reader = new BufferedReader(new InputStreamReader(in));
            tokenizer = null;
        }

        String next() {
            if (tokenizer == null || !tokenizer.hasMoreTokens()) {
                try {
                    tokenizer = new StringTokenizer(reader.readLine());
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
            return tokenizer.nextToken();
        }

        String nextLine() {
            if (tokenizer == null || !tokenizer.hasMoreTokens()) {
                try {
                    return reader.readLine();
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
            return tokenizer.nextToken("\n");
        }

        long nextLong() {
            return Long.parseLong(next());
        }

        int nextInt() {
            return Integer.parseInt(next());
        }

        int[] nextIntArray(int n) {
            int[] a = new int[n];
            for (int i = 0; i < n; i++)
                a[i] = nextInt();
            return a;
        }

        long[] nextLongArray(int n) {
            long[] a = new long[n];
            for (int i = 0; i < n; i++)
                a[i] = nextLong();
            return a;
        }
    }
}

Submission Info

Submission Time
Task C - 席替え
User kusomushi
Language Java8 (OpenJDK 1.8.0)
Score 0
Code Size 3604 Byte
Status WA
Exec Time 209 ms
Memory 29524 KB

Judge Result

Set Name All
Score / Max Score 0 / 100
Status
AC × 43
WA × 39
Set Name Test Cases
All case_01.txt, case_02.txt, case_03.txt, case_04.txt, case_05.txt, case_06.txt, case_07.txt, case_08.txt, case_09.txt, case_10.txt, case_11.txt, case_12.txt, case_13.txt, case_14.txt, case_15.txt, case_16.txt, case_17.txt, case_18.txt, case_19.txt, case_20.txt, case_21.txt, case_22.txt, case_23.txt, case_24.txt, case_25.txt, case_26.txt, case_27.txt, case_28.txt, case_29.txt, case_30.txt, case_31.txt, case_32.txt, case_33.txt, case_34.txt, case_35.txt, case_36.txt, case_37.txt, case_38.txt, case_39.txt, case_40.txt, case_41.txt, case_42.txt, case_43.txt, case_44.txt, case_45.txt, case_46.txt, case_47.txt, case_48.txt, case_49.txt, case_50.txt, case_51.txt, case_52.txt, case_53.txt, case_54.txt, case_55.txt, case_56.txt, case_57.txt, case_58.txt, case_59.txt, case_60.txt, case_61.txt, case_62.txt, case_63.txt, case_64.txt, case_65.txt, case_66.txt, case_67.txt, case_68.txt, case_69.txt, case_70.txt, case_71.txt, case_72.txt, case_73.txt, case_74.txt, case_75.txt, case_76.txt, case_77.txt, case_78.txt, case_79.txt, sample_1.txt, sample_2.txt, sample_3.txt
Case Name Status Exec Time Memory
case_01.txt WA 181 ms 27988 KB
case_02.txt WA 171 ms 26580 KB
case_03.txt AC 179 ms 25552 KB
case_04.txt AC 154 ms 23764 KB
case_05.txt AC 169 ms 24020 KB
case_06.txt WA 154 ms 25172 KB
case_07.txt WA 159 ms 26068 KB
case_08.txt AC 154 ms 23636 KB
case_09.txt WA 170 ms 26324 KB
case_10.txt AC 177 ms 26452 KB
case_11.txt WA 163 ms 23376 KB
case_12.txt AC 174 ms 25296 KB
case_13.txt WA 166 ms 25812 KB
case_14.txt WA 170 ms 26708 KB
case_15.txt AC 192 ms 25812 KB
case_16.txt WA 178 ms 26196 KB
case_17.txt AC 176 ms 25684 KB
case_18.txt WA 175 ms 26708 KB
case_19.txt AC 193 ms 24276 KB
case_20.txt WA 177 ms 26324 KB
case_21.txt AC 192 ms 24276 KB
case_22.txt AC 155 ms 25428 KB
case_23.txt WA 187 ms 25940 KB
case_24.txt WA 168 ms 27472 KB
case_25.txt WA 179 ms 26580 KB
case_26.txt WA 168 ms 24276 KB
case_27.txt AC 166 ms 25296 KB
case_28.txt WA 161 ms 26580 KB
case_29.txt AC 185 ms 25552 KB
case_30.txt AC 181 ms 25556 KB
case_31.txt WA 167 ms 23636 KB
case_32.txt WA 170 ms 23632 KB
case_33.txt AC 178 ms 24276 KB
case_34.txt WA 174 ms 25044 KB
case_35.txt WA 172 ms 24020 KB
case_36.txt AC 167 ms 25940 KB
case_37.txt WA 162 ms 28372 KB
case_38.txt WA 161 ms 26580 KB
case_39.txt WA 187 ms 24276 KB
case_40.txt AC 172 ms 26580 KB
case_41.txt WA 175 ms 25684 KB
case_42.txt AC 158 ms 22484 KB
case_43.txt WA 180 ms 24660 KB
case_44.txt WA 156 ms 25684 KB
case_45.txt AC 169 ms 25044 KB
case_46.txt AC 176 ms 24532 KB
case_47.txt AC 185 ms 25288 KB
case_48.txt WA 159 ms 29524 KB
case_49.txt AC 159 ms 25812 KB
case_50.txt AC 192 ms 24404 KB
case_51.txt AC 199 ms 26068 KB
case_52.txt AC 189 ms 26708 KB
case_53.txt WA 192 ms 28244 KB
case_54.txt AC 193 ms 26068 KB
case_55.txt WA 195 ms 25940 KB
case_56.txt AC 197 ms 23892 KB
case_57.txt WA 203 ms 23764 KB
case_58.txt WA 199 ms 24148 KB
case_59.txt AC 189 ms 25428 KB
case_60.txt AC 196 ms 26708 KB
case_61.txt AC 191 ms 25680 KB
case_62.txt AC 189 ms 25940 KB
case_63.txt AC 188 ms 25812 KB
case_64.txt WA 195 ms 24148 KB
case_65.txt WA 198 ms 23124 KB
case_66.txt AC 202 ms 23948 KB
case_67.txt AC 201 ms 28604 KB
case_68.txt AC 186 ms 23252 KB
case_69.txt WA 209 ms 24364 KB
case_70.txt AC 158 ms 25684 KB
case_71.txt WA 159 ms 25556 KB
case_72.txt AC 163 ms 26068 KB
case_73.txt AC 164 ms 24272 KB
case_74.txt AC 159 ms 25172 KB
case_75.txt WA 163 ms 25684 KB
case_76.txt AC 161 ms 25684 KB
case_77.txt WA 150 ms 24788 KB
case_78.txt WA 166 ms 23636 KB
case_79.txt WA 157 ms 26452 KB
sample_1.txt AC 163 ms 26452 KB
sample_2.txt AC 169 ms 27604 KB
sample_3.txt AC 164 ms 23508 KB