1 import java.util.Scanner;
2
6 public class RandomSurferCode {
7 public static void main(String[] args) {
8 Scanner scanner = new Scanner(System.in);
9 Page[] pages = new Page[scanner.nextInt()];
10 for (int i=0; i<pages.length; i++) {
11 pages[i] = new Page(scanner.next(), scanner.nextInt());
12 }
13 for (int i=0; i<pages.length; i++) {
14 for (int j=0; j<pages[i].getDegree(); j++) {
15 int k = scanner.nextInt();
16 pages[i].setLink( j, pages[k-1] );
17 }
18 }
19 for (int i=0; i<pages.length; i++) {
20 for (int j=0; j<pages[i].getDegree(); j++) {
21 Page p = pages[i].getLink(j);
22 }
23 }
24 int totalVisits = scanner.nextInt();
25 Page currentPage = pages[0];
26 int visitCount = 0;
27 while ( visitCount++ < totalVisits ) {
28 if (Math.random() < 0.90) {
29 int k = (int)( Math.random() * currentPage.getDegree());
30 currentPage = currentPage.getLink(k);
31 }
32 else {
33 int k = (int)( Math.random() * pages.length );
34 currentPage = pages[k];
35 }
36 currentPage.incrementCount();
37 }
38 for (int i=0; i<pages.length; i++)
39 System.out.println( "page " + pages[i].getURL() + ": " + pages[i].getCount()
40 + " visits (" + ( pages[i].getCount() / (totalVisits/100.0) ) + " %)");
41 }
42 }
43