Submission #666625
Source Code Expand
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.*;
public class Main {
private static int N;
private static int A;
private static int[] X;
private static int[] Y;
private static int B;
private static int[] U;
private static int[] V;
private static Map<Integer, TreeSet<Integer>> C = new HashMap();
private static Map<Integer, TreeSet<Integer>> C2 = new HashMap();
private static TreeSet<Integer> T = new TreeSet();
public static void main(String[] args) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(in.readLine());
for (int i = 1; i <= N; i++) {
T.add(i);
}
A = Integer.parseInt(in.readLine());
X = new int[A];
Y = new int[A];
for (int i = 0; i < A; i++) {
String[] s = in.readLine().split(" ");
X[i] = Integer.parseInt(s[0]);
Y[i] = Integer.parseInt(s[1]);
if (!C.containsKey(X[i])) {
C.put(X[i], new TreeSet());
}
C.get(X[i]).add(Y[i]);
}
B = Integer.parseInt(in.readLine());
U = new int[B];
V = new int[B];
for (int i = 0; i < B; i++) {
String[] s = in.readLine().split(" ");
U[i] = Integer.parseInt(s[0]);
V[i] = Integer.parseInt(s[1]);
if (!C2.containsKey(V[i])) {
C2.put(V[i], new TreeSet());
}
C2.get(V[i]).add(U[i]);
}
int ans = 0;
while (true) {
boolean removed = false;
for (Integer i : T) {
if ((!C.containsKey(i) || C.get(i).size() == 0) && (!C2.containsKey(i) || C2.get(i).size() == 0)) {
T.remove(i);
C.remove(i);
C2.remove(i);
for (Map.Entry<Integer, TreeSet<Integer>> e : C.entrySet()) {
e.getValue().remove(i);
}
for (Map.Entry<Integer, TreeSet<Integer>> e : C2.entrySet()) {
e.getValue().remove(i);
}
ans++;
removed = true;
break;
}
}
if (!removed) {
if (C2.size() == 0) {
break;
}
int max = 0;
int maxi = 0;
for (Map.Entry<Integer, TreeSet<Integer>> e : C2.entrySet()) {
int k = e.getKey();
TreeSet<Integer> v = e.getValue();
if (max < v.size() + (C.containsKey(k) ? C.get(k).size() : 0)) {
max = v.size() + (C.containsKey(k) ? C.get(k).size() : 0);
maxi = k;
}
}
T.remove(maxi);
C.remove(maxi);
C2.remove(maxi);
/**
for (Map.Entry<Integer, TreeSet<Integer>> e : C.entrySet()) {
e.getValue().remove(maxi);
}
**/
for (Map.Entry<Integer, TreeSet<Integer>> e : C2.entrySet()) {
e.getValue().remove(maxi);
}
}
}
PrintWriter out = new PrintWriter(System.out);
out.println(ans);
out.flush();
}
}
Submission Info
| Submission Time | |
|---|---|
| Task | C - ぬりまーす |
| User | ysd |
| Language | Java8 (OpenJDK 1.8.0) |
| Score | 0 |
| Code Size | 3636 Byte |
| Status | WA |
| Exec Time | 180 ms |
| Memory | 8400 KiB |
Compile Error
Note: ./Main.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details.
Judge Result
| Set Name | Sample | All | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 0 / 100 | ||||||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | x_sample_1.txt, x_sample_2.txt, x_sample_3.txt, x_sample_4.txt, x_sample_5.txt |
| All | corner1.txt, corner2.txt, corner3.txt, corner4.txt, manual1.txt, manual2.txt, manual3.txt, manual4.txt, manual5.txt, random1.txt, random10.txt, random11.txt, random12.txt, random13.txt, random14.txt, random15.txt, random2.txt, random3.txt, random4.txt, random5.txt, random6.txt, random7.txt, random8.txt, random9.txt, x_sample_1.txt, x_sample_2.txt, x_sample_3.txt, x_sample_4.txt, x_sample_5.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| corner1.txt | WA | 178 ms | 8276 KiB |
| corner2.txt | AC | 171 ms | 8400 KiB |
| corner3.txt | AC | 157 ms | 8148 KiB |
| corner4.txt | AC | 177 ms | 8268 KiB |
| manual1.txt | AC | 163 ms | 8144 KiB |
| manual2.txt | AC | 171 ms | 8276 KiB |
| manual3.txt | AC | 165 ms | 8268 KiB |
| manual4.txt | AC | 159 ms | 8148 KiB |
| manual5.txt | AC | 152 ms | 8020 KiB |
| random1.txt | WA | 164 ms | 8276 KiB |
| random10.txt | WA | 167 ms | 8144 KiB |
| random11.txt | WA | 169 ms | 8276 KiB |
| random12.txt | WA | 167 ms | 8276 KiB |
| random13.txt | AC | 163 ms | 8276 KiB |
| random14.txt | AC | 175 ms | 8148 KiB |
| random15.txt | AC | 167 ms | 8148 KiB |
| random2.txt | AC | 176 ms | 8268 KiB |
| random3.txt | WA | 163 ms | 8272 KiB |
| random4.txt | AC | 171 ms | 8272 KiB |
| random5.txt | WA | 175 ms | 8276 KiB |
| random6.txt | WA | 171 ms | 8268 KiB |
| random7.txt | WA | 163 ms | 8272 KiB |
| random8.txt | WA | 180 ms | 8148 KiB |
| random9.txt | WA | 179 ms | 8276 KiB |
| x_sample_1.txt | AC | 155 ms | 8148 KiB |
| x_sample_2.txt | WA | 155 ms | 8020 KiB |
| x_sample_3.txt | AC | 152 ms | 8020 KiB |
| x_sample_4.txt | AC | 152 ms | 8148 KiB |
| x_sample_5.txt | AC | 153 ms | 8148 KiB |