Adding some more judges, here and there.
[and.git] / NEERC / database / database_md.java
blobd86eaede68b375a6968088e4affe5bab7874670f
1 import java.io.*;
2 import java.util.*;
4 public class database_md {
5 private static String fileName = database_md.class.getSimpleName().replaceFirst("_.*", "");
6 private static String inputFileName = fileName + ".in";
7 private static String outputFileName = fileName + ".out";
8 private static Scanner in;
9 private static PrintWriter out;
11 public void run() {
12 int n = in.nextInt();
13 int m = in.nextInt();
14 in.nextLine();
15 String[][] table = new String[n][];
16 for (int i = 0; i < n; i++) {
17 table[i] = in.nextLine().split(",");
19 int[][] val = new int[n][m];
20 for (int j = 0; j < m; j++) {
21 Map<String, Integer> map = new HashMap<String, Integer>();
22 for (int i = n - 1; i >= 0; i--) {
23 map.put(table[i][j], i);
25 for (int i = 0; i < n; i++) {
26 val[i][j] = map.get(table[i][j]);
29 int[] pair = new int[n];
30 for (int j = 0; j < m; j++) {
31 for (int k = j + 1; k < m; k++) {
32 for (int i = 0; i < n; i++) {
33 pair[i] = val[i][j] * n + val[i][k];
35 Arrays.sort(pair);
36 int found = -1;
37 for (int i = 0; i < n - 1; i++) {
38 if (pair[i] == pair[i + 1]) {
39 found = pair[i];
42 if (found >= 0) {
43 out.println("NO");
44 int f = 0;
45 for (int i = 0; i < n && f < 2; i++) {
46 if (found == val[i][j] * n + val[i][k]) {
47 out.print((i + 1) + " ");
50 out.println();
51 out.println((j + 1) + " " + (k + 1));
52 return;
56 out.println("YES");
59 public static void main(String[] args) throws IOException {
60 Locale.setDefault(Locale.US);
61 in = new Scanner(new FileReader(inputFileName));
62 out = new PrintWriter(outputFileName);
63 new database_md().run();
64 in.close();
65 out.close();