Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //package vpl2;
- import java.util.*;
- import java.io.*;
- public class Main {
- @SuppressWarnings("unchecked")
- public static void main(String[] args) throws IOException {
- BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
- //BufferedReader in = new BufferedReader(new FileReader("D:\\Uni\\WS 18-19\\Algorithmendesign\\Code\\src\\vpl2\\NFL17_014_IMDb_ge_8.csv"));
- //BufferedReader in = new BufferedReader(new FileReader("D:\\Uni\\WS 18-19\\Algorithmendesign\\Code\\src\\vpl2\\test.csv"));
- //BufferedReader in = new BufferedReader(new FileReader("D:\\Uni\\WS 18-19\\Algorithmendesign\\Code\\src\\vpl2\\NFL17_187_CS_KoKi_Col.csv"));
- //Variables-------------------------------------------------------------
- ArrayList<Movie> movies = new ArrayList<>();
- ArrayList<String[]> indexDatabase = new ArrayList<String[]>();
- //Variables-------------------------------------------------------------
- int n = 0; // how many lines of data do we have? -> n
- String line;
- while ( (line = in.readLine()) != null ) {
- String[] data = line.split(";");
- // do something with this line ...
- movies.add(new Movie(data, n));
- indexDatabase.add(n, data);
- n++;
- }
- in.close();
- // sort indexDatabaseProcessed by start time
- movies.sort(Comparator.comparing(o -> o.starttime));
- //movies.forEach(m -> System.out.println(m.index));
- //==============================================================================================================
- //=================================== finished defining all needed data structures =============================
- //==============================================================================================================
- ArrayList<Movie> perfectList;
- perfectList = getPerfectSchedule(movies);
- // Test output
- //System.out.println(jobsActiveAt[0] + " " + jobsActiveAt[632]);
- //System.out.println(C.get(1)[0] + C.get(1)[1]);
- for (Movie element : perfectList) {
- System.out.print(indexDatabase.get(element.index)[0]);
- for (int i = 1; i <= 4; i++) {
- System.out.print(";" + indexDatabase.get(element.index)[i]);
- }
- System.out.println();
- }
- //System.out.println(indexDatabase.get(0)[5]);
- }
- static ArrayList<Movie> getPerfectSchedule(ArrayList<Movie> movies) {
- ArrayList<Movie> perfectSchedule = new ArrayList<>();
- Movie tmp = movies.get(0);
- for (int i=0; i<movies.size(); i++) {
- if (i==0) {
- perfectSchedule.add(tmp);
- }
- else if (movies.get(i).starttime > (perfectSchedule.get(perfectSchedule.size()-1).length)+perfectSchedule.get(perfectSchedule.size()-1).starttime) {
- if (!checkForDuplicates(movies.get(i), perfectSchedule)) {
- perfectSchedule.add(movies.get(i));
- }
- } else {
- if (movies.get(i).iMDB > perfectSchedule.get(perfectSchedule.size()-1).iMDB) {
- if (!checkForDuplicates(movies.get(i), perfectSchedule)) {
- tmp = perfectSchedule.get(perfectSchedule.size()-1);
- if (movies.get(i).starttime < tmp.starttime+tmp.length) {
- perfectSchedule.remove(perfectSchedule.size()-1);
- }
- perfectSchedule.add(movies.get(i));
- }
- }
- }
- }
- return perfectSchedule;
- }
- static boolean checkForDuplicates(Movie movie, ArrayList<Movie> arrMovie) {
- for (int i=0; i<arrMovie.size(); i++) {
- if (movie.title.equals(arrMovie.get(i).title)) {
- return true;
- }
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement