import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuffer sb = new StringBuffer("");
String m = "";
int index = 1;
while ((m = br.readLine()) != null) {
int n = Integer.parseInt(m);
boolean[][] relation = new boolean[n][n];
boolean[] used = new boolean[n];
int[] indexOF = new int[n];
HashMap<String, Integer> hm = new HashMap<String, Integer>();
String[] arr = new String[n];
for (int i = 0; i < n; i++) {
String s = br.readLine();
arr[i] = s;
hm.put(s, i);
indexOF[i] = 0;
used[i] = false;
for (int j = 0; j < n; j++) {
relation[i][j] = false;
}
}
int z = Integer.parseInt(br.readLine());
for (int i = 0; i < z; i++) {
String[] str = br.readLine().split(" ");
int ind1 = hm.get(str[0]);
int ind2 = hm.get(str[1]);
if (!relation[ind1][ind2]) {
relation[ind1][ind2] = true;
indexOF[ind2]++;
}
}
boolean finished = false;
int begin=-1;
sb.append("Case #").append(index).append(": Dilbert should drink beverages in this order:");
while (!finished) {
finished = true;
for (int i = 0; i < n; i++) {
if (!used[i] && indexOF[i] == 0) {
used[i] = true;
sb.append(" ").append(arr[i]);
for (int j = 0; j < n; j++) {
if (relation[i][j]) {
indexOF[j]--;
}
}
i = begin;
finished = false;
}
}
}
sb.append(".\n\n");
index++;
br.readLine();
}
System.out.print(sb);
}
}
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuffer sb = new StringBuffer("");
String m = "";
int index = 1;
while ((m = br.readLine()) != null) {
int n = Integer.parseInt(m);
boolean[][] relation = new boolean[n][n];
boolean[] used = new boolean[n];
int[] indexOF = new int[n];
HashMap<String, Integer> hm = new HashMap<String, Integer>();
String[] arr = new String[n];
for (int i = 0; i < n; i++) {
String s = br.readLine();
arr[i] = s;
hm.put(s, i);
indexOF[i] = 0;
used[i] = false;
for (int j = 0; j < n; j++) {
relation[i][j] = false;
}
}
int z = Integer.parseInt(br.readLine());
for (int i = 0; i < z; i++) {
String[] str = br.readLine().split(" ");
int ind1 = hm.get(str[0]);
int ind2 = hm.get(str[1]);
if (!relation[ind1][ind2]) {
relation[ind1][ind2] = true;
indexOF[ind2]++;
}
}
boolean finished = false;
int begin=-1;
sb.append("Case #").append(index).append(": Dilbert should drink beverages in this order:");
while (!finished) {
finished = true;
for (int i = 0; i < n; i++) {
if (!used[i] && indexOF[i] == 0) {
used[i] = true;
sb.append(" ").append(arr[i]);
for (int j = 0; j < n; j++) {
if (relation[i][j]) {
indexOF[j]--;
}
}
i = begin;
finished = false;
}
}
}
sb.append(".\n\n");
index++;
br.readLine();
}
System.out.print(sb);
}
}
No comments:
Post a Comment