Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package heima10;
- import java.util.ArrayList;
- import edu.princeton.cs.algs4.*;
- public class SixDegrees {
- public static void main(String[] args) {
- // búum til graf fyrir textaskránna okkar
- String filename = "./src/heima10/movies.txt";
- String delimiter = "/";
- String source = "Bacon, Kevin";
- SymbolGraph sg = new SymbolGraph(filename, delimiter);
- Graph G = sg.graph();
- // listi til að geyma leikara
- ArrayList<String> actorList = new ArrayList<>();
- // bætum leikurunum í skránni við í listann
- In in = new In(filename);
- while (!in.isEmpty()) {
- String[] a = in.readLine().split(delimiter);
- for (int i = 1; i < a.length; i++) {
- if (!actorList.contains(a[i]))
- actorList.add(a[i]);
- }
- }
- // fylki til að geyma fjölda leikara fyrir hverja Bacon tölu
- int[] arr = new int[6];
- int bacon = 0;
- int oskilgreint = 0;
- int s = sg.indexOf(source);
- // allar mögulegar leiðir frá Kevin Bacon
- BreadthFirstPaths bfs = new BreadthFirstPaths(G, s);
- for (int i=0; i<actorList.size(); i++) {
- String sink = actorList.get(i);
- int t = sg.indexOf(sink);
- if (bfs.hasPathTo(t)) {
- for (int v : bfs.pathTo(t)) {
- bacon++;
- }
- /* ættum aldrei að fá slétta tölu þar sem Bacon, leikarinn sjálfur og leikarar á milli mynda eru taldir með,
- gerum samt svona bara til öryggis: */
- if (bacon%2 != 0) {
- bacon /= 2; // fáum þá fjölda mynda (tökum út leikara)
- arr[bacon]++;
- }
- bacon = 0;
- }
- else oskilgreint++; // ef það er ekki til leið
- }
- // prentum
- int i = 0;
- for (int j : arr) {
- StdOut.println(i + ": " + j);
- i++;
- }
- StdOut.println("Óskilgreint: " + oskilgreint);
- }
- }
Add Comment
Please, Sign In to add comment