Submission #25772517
Source Code Expand
import java.io.OutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.Collection;
import java.util.Set;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.TreeSet;
import java.util.stream.Stream;
import java.util.TreeMap;
import java.util.StringTokenizer;
import java.util.Map;
import java.io.BufferedReader;
import java.io.InputStream;
/**
* Built using CHelper plug-in
* Actual solution is at the top
*/
public class Main {
public static void main(String[] args) {
InputStream inputStream = System.in;
OutputStream outputStream = System.out;
MyScanner in = new MyScanner(inputStream);
PrintWriter out = new PrintWriter(outputStream);
D solver = new D();
solver.solve(1, in, out);
out.close();
}
static class D {
public void solve(int testNumber, MyScanner in, PrintWriter out) {
int N = in.Int();
TreeMap<Integer, Set<Integer>> map = new TreeMap<>();
for (int n = 0; n < N; n++) {
int x = in.Int();
int y = in.Int();
Set<Integer> set = map.getOrDefault(x, new TreeSet<>());
set.add(y);
map.put(x, set);
}
long ans = 0;
var keys = map.keySet().toArray(new Integer[0]);
for (int i = 0; i < keys.length; i++) {
Set<Integer> set1 = map.get(keys[i]);
for (int j = i + 1; j < keys.length; j++) {
Set<Integer> set2 = map.get(keys[j]);
long cnt = set1.stream().filter(set2::contains).count();
ans += cnt * (cnt - 1) / 2;
}
}
out.println(ans);
}
}
static class MyScanner {
private BufferedReader in;
private StringTokenizer st;
public MyScanner(InputStream stream) {
in = new BufferedReader(new InputStreamReader(stream));
}
public String next() {
while (st == null || !st.hasMoreTokens()) {
try {
String rl = in.readLine();
if (rl == null) {
return null;
}
st = new StringTokenizer(rl);
} catch (IOException e) {
return null;
}
}
return st.nextToken();
}
public int Int() {
return Integer.parseInt(next());
}
}
}
Submission Info
| Submission Time | |
|---|---|
| Task | D - Rectangles |
| User | daira4000 |
| Language | Java (OpenJDK 11.0.6) |
| Score | 400 |
| Code Size | 2684 Byte |
| Status | AC |
| Exec Time | 395 ms |
| Memory | 55612 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 400 / 400 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample_00.txt, sample_01.txt, sample_02.txt |
| All | case_00.txt, 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, sample_00.txt, sample_01.txt, sample_02.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| case_00.txt | AC | 148 ms | 37692 KiB |
| case_01.txt | AC | 141 ms | 37468 KiB |
| case_02.txt | AC | 145 ms | 37572 KiB |
| case_03.txt | AC | 140 ms | 37332 KiB |
| case_04.txt | AC | 141 ms | 36708 KiB |
| case_05.txt | AC | 172 ms | 36432 KiB |
| case_06.txt | AC | 134 ms | 36596 KiB |
| case_07.txt | AC | 140 ms | 37396 KiB |
| case_08.txt | AC | 131 ms | 36176 KiB |
| case_09.txt | AC | 140 ms | 37200 KiB |
| case_10.txt | AC | 143 ms | 37524 KiB |
| case_11.txt | AC | 150 ms | 37080 KiB |
| case_12.txt | AC | 153 ms | 37016 KiB |
| case_13.txt | AC | 143 ms | 37240 KiB |
| case_14.txt | AC | 138 ms | 37488 KiB |
| case_15.txt | AC | 395 ms | 55612 KiB |
| case_16.txt | AC | 151 ms | 38188 KiB |
| case_17.txt | AC | 155 ms | 38088 KiB |
| case_18.txt | AC | 146 ms | 38188 KiB |
| case_19.txt | AC | 176 ms | 37420 KiB |
| case_20.txt | AC | 145 ms | 38188 KiB |
| case_21.txt | AC | 148 ms | 37076 KiB |
| case_22.txt | AC | 147 ms | 38328 KiB |
| case_23.txt | AC | 149 ms | 38508 KiB |
| case_24.txt | AC | 149 ms | 38588 KiB |
| case_25.txt | AC | 207 ms | 38240 KiB |
| sample_00.txt | AC | 80 ms | 33548 KiB |
| sample_01.txt | AC | 78 ms | 33924 KiB |
| sample_02.txt | AC | 82 ms | 33964 KiB |