public static void main(String[] args) throws Exception {
		BufferedReader br1 = new BufferedReader(new FileReader(
				"res/kaggle_triplets.csv"));
		BufferedReader br2 = null;
		// train_triplets
		// kaggle_visible_evaluation_triplets
		BufferedWriter wr = null;
		long start = System.currentTimeMillis();
		try {
			String line = br1.readLine();
			int i = 0;
			while (line != null) {
				String[] split = line.split(";");
				LinkedList<Integer> list = map.get(Integer.parseInt(split[1]));
				if (list != null) {
					list.add(new Integer(split[2]));
				} else {
					list = new LinkedList<>();
					list.add(new Integer(split[2]));
					map.put(new Integer(split[1]), list);
				}
				// System.out.println(split);
				i++;
				if (i % 100000 == 0) {
					System.out.println(i);
				}
				line = br1.readLine();
			}
			br1.close();

			br1 = new BufferedReader(new FileReader(
					"res/users.csv"));//inclass_kaggle_users.txt
			line = br1.readLine();
			i = 0;
			while (line != null) {

				String[] split = line.split(",");
				users[Integer.parseInt(split[0])] = split[1];
				line = br1.readLine();

			}
			br1.close();

			br1 = new BufferedReader(new FileReader("res/songs.csv"));
			line = br1.readLine();
			i = 0;
			while (line != null) {

				String[] split = line.split(";");
				songs[Integer.parseInt(split[0])] = Integer.parseInt(split[2]);
				;
				line = br1.readLine();

			}
			br1.close();

			br1 = new BufferedReader(
					new FileReader(
							"res/report/eventest_triplets.csv"));//inclass_kaggle_visible_evaluation_triplets_sorted
			line = br1.readLine();
			i = 0;
			while (line != null) {
				String[] split = line.split(",");
				LinkedList<Integer> list = bannedMap.get(Integer
						.parseInt(split[0]));
				if (list != null) {
					list.add(new Integer(split[1]));
				} else {
					list = new LinkedList<>();
					list.add(new Integer(split[1]));
					bannedMap.put(Integer.parseInt(split[0]), list);
				}
				// System.out.println(split);
				i++;
				if (i % 100000 == 0) {
					System.out.println(i);
				}
				line = br1.readLine();
			}
			br1.close();
			complexResults();
			// complexResults();

		} catch (Exception e) {
			e.printStackTrace();
		}
		/*
		 * i = 0; wr = new BufferedWriter(new FileWriter(
		 * "res/results/songResultsTest.csv")); StringBuilder builder = new
		 * StringBuilder(); ; for (i = 0; i <= 108000; i += 2000) { br2 = new
		 * BufferedReader(new FileReader("res/results/results" + i + ".csv"));
		 * line = br2.readLine(); while (line != null) { String[] split =
		 * line.split(";"); builder = new StringBuilder();
		 * builder.append(split[0]); builder.append(";"); int k = 0;
		 * LinkedList<Integer> bannedList = bannedMap.get(split[0]); for (int j
		 * = 1; j < split.length; j++) { LinkedList<Integer> songList =
		 * map.get(split[j]); if (songList != null) { for (Integer song :
		 * songList) { if (bannedList == null || !bannedList.contains(song)) {
		 * builder.append(song); builder.append(";"); k++; if (k == 100) {
		 * break; } } } } if (k == 100) { break; } } builder.append("\n");
		 * wr.append(builder.toString()); line = br2.readLine(); }
		 * System.out.println(i); br2.close(); } } catch (Exception e) {
		 * e.printStackTrace(); } finally { wr.close();
		 * System.out.println("koniec"); }
		 */

	}