Submission #2560048
Source Code Expand
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.HashMap;
import java.util.InputMismatchException;
import java.util.Map;
import java.util.Map.Entry;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
InputStream inputStream = System.in;
OutputStream outputStream = System.out;
InputReader in = new InputReader(inputStream);
PrintWriter out = new PrintWriter(outputStream);
TaskX solver = new TaskX();
solver.solve(1, in, out);
out.close();
}
static int INF = 1 << 30;
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, InputReader in, PrintWriter out) {
int R = in.nextInt(), C = in.nextInt(), K = in.nextInt();
int N = in.nextInt();
int[] S = new int[N], T = new int[N];
int[] H = new int[R], W = new int[C];
for (int i = 0; i < N; i++) {
S[i] = in.nextInt();
T[i] = in.nextInt();
H[S[i]-1]++;
W[T[i]-1]++;
}
Map<Integer, Integer> mapH = new HashMap<>();
Map<Integer, Integer> mapW = new HashMap<>();
for (int i = 0; i < R; i++) {
mapH.merge(H[i], 1, Integer::sum);
}
for (int i = 0; i < C; i++) {
mapW.merge(W[i], 1, Integer::sum);
}
long ans = 0;
for (Entry<Integer, Integer> entry : mapH.entrySet()) {
int key = entry.getKey();
if (mapW.containsKey(K - key)) {
ans += entry.getValue() * mapW.get(K - key);
}
}
for (int i = 0; i < N; i++) {
if (H[S[i]-1]+W[T[i]-1] == K) ans--;
if (H[S[i]-1]+W[T[i]-1] == K+1) ans++;
}
out.println(ans);
}
}
static class InputReader {
BufferedReader in;
StringTokenizer tok;
public String nextString() {
while (!tok.hasMoreTokens()) {
try {
tok = new StringTokenizer(in.readLine(), " ");
} catch (IOException e) {
throw new InputMismatchException();
}
}
return tok.nextToken();
}
public int nextInt() {
return Integer.parseInt(nextString());
}
public long nextLong() {
return Long.parseLong(nextString());
}
public double nextDouble() {
return Double.parseDouble(nextString());
}
public int[] nextIntArray(int n) {
int[] res = new int[n];
for (int i = 0; i < n; i++) {
res[i] = nextInt();
}
return res;
}
public long[] nextLongArray(int n) {
long[] res = new long[n];
for (int i = 0; i < n; i++) {
res[i] = nextLong();
}
return res;
}
public InputReader(InputStream inputStream) {
in = new BufferedReader(new InputStreamReader(inputStream));
tok = new StringTokenizer("");
}
}
}
Submission Info
Submission Time |
|
Task |
C - 収集王 |
User |
tutuz |
Language |
Java8 (OpenJDK 1.8.0) |
Score |
100 |
Code Size |
3021 Byte |
Status |
AC |
Exec Time |
368 ms |
Memory |
44632 KB |
Judge Result
Set Name |
Sample |
Subtask1 |
Subtask2 |
Score / Max Score |
0 / 0 |
30 / 30 |
70 / 70 |
Status |
|
|
|
Set Name |
Test Cases |
Sample |
subtask0-sample01.txt, subtask0-sample02.txt, subtask0-sample03.txt |
Subtask1 |
subtask0-sample01.txt, subtask0-sample02.txt, subtask0-sample03.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 |
Subtask2 |
subtask0-sample01.txt, subtask0-sample02.txt, subtask0-sample03.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, 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 |
Case Name |
Status |
Exec Time |
Memory |
subtask0-sample01.txt |
AC |
180 ms |
24148 KB |
subtask0-sample02.txt |
AC |
150 ms |
25940 KB |
subtask0-sample03.txt |
AC |
157 ms |
23892 KB |
subtask1-01.txt |
AC |
153 ms |
26196 KB |
subtask1-02.txt |
AC |
154 ms |
22356 KB |
subtask1-03.txt |
AC |
155 ms |
23636 KB |
subtask1-04.txt |
AC |
150 ms |
26196 KB |
subtask1-05.txt |
AC |
151 ms |
25300 KB |
subtask1-06.txt |
AC |
152 ms |
24020 KB |
subtask1-07.txt |
AC |
157 ms |
23764 KB |
subtask1-08.txt |
AC |
157 ms |
28500 KB |
subtask1-09.txt |
AC |
151 ms |
23764 KB |
subtask1-10.txt |
AC |
161 ms |
23892 KB |
subtask1-11.txt |
AC |
150 ms |
25296 KB |
subtask1-12.txt |
AC |
150 ms |
24148 KB |
subtask1-13.txt |
AC |
154 ms |
23508 KB |
subtask1-14.txt |
AC |
149 ms |
25556 KB |
subtask1-15.txt |
AC |
158 ms |
23764 KB |
subtask2-01.txt |
AC |
165 ms |
24532 KB |
subtask2-02.txt |
AC |
182 ms |
23380 KB |
subtask2-03.txt |
AC |
229 ms |
31120 KB |
subtask2-04.txt |
AC |
304 ms |
43192 KB |
subtask2-05.txt |
AC |
343 ms |
43712 KB |
subtask2-06.txt |
AC |
347 ms |
40524 KB |
subtask2-07.txt |
AC |
296 ms |
44632 KB |
subtask2-08.txt |
AC |
354 ms |
41764 KB |
subtask2-09.txt |
AC |
340 ms |
41264 KB |
subtask2-10.txt |
AC |
322 ms |
43144 KB |
subtask2-11.txt |
AC |
355 ms |
44344 KB |
subtask2-12.txt |
AC |
351 ms |
41032 KB |
subtask2-13.txt |
AC |
342 ms |
43272 KB |
subtask2-14.txt |
AC |
365 ms |
42536 KB |
subtask2-15.txt |
AC |
368 ms |
38876 KB |