Advertisement
Guest User

Untitled

a guest
Dec 18th, 2014
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.79 KB | None | 0 0
  1. int[] bfs(int[][] matr, int nap, int n){
  2.         int rast=0;
  3.         Queue<Integer> a = new ArrayDeque<Integer>();
  4.         int start=nap;
  5.         a.add(start);
  6.         int[] res=new int[n];
  7.         boolean[] used=new boolean[n];
  8.         used[start]=true;
  9.         res[start]=0;
  10.         while(!a.isEmpty()){
  11.             int no=a.poll();
  12.             for(int i=0;i<n;i++){
  13.                 if(matr[no][i]>0 && !used[i]){
  14.                     a.add(i);
  15.                     used[i]=true;
  16.                     res[i]=res[no]+1;
  17.                 }
  18.             }
  19.  
  20.         }
  21.         return res;
  22.     }
  23.     void solve() throws IOException{
  24.         int n=readInt();
  25.         int m=readInt();
  26.         int t=readInt();
  27.         int[] a = readIntArr(n);
  28.         int[][] matr=new int[n][];
  29.  
  30.         for(int i=0;i<n;i++){
  31.             matr[i]=new int[n];
  32.         }
  33.         for(int j=0;j<m;j++){
  34.             int x=readInt()-1;
  35.             int y=readInt()-1;
  36.             matr[x][y]=1;
  37.             matr[y][x]=1;
  38.         }
  39.         int nap=readInt()-1;
  40.         int w=readInt();
  41.         int[] rast=new int[n];
  42.             rast=bfs(matr, nap, n);
  43.  
  44.         int[] pribav=new int[n];
  45.         for(int i=0;i<n;i++){
  46.             pribav[rast[i]]+=a[i];
  47.         }
  48.  
  49.         int sold=a[nap];
  50.         int index=1;
  51.         while(w>0 || sold>0){
  52.             int w1=w;
  53.             w-=Math.min(Math.min(w, sold),t);
  54.             sold-=Math.min(Math.min(w1,sold),t);
  55.             if(w<=0){
  56.                 out.println("Vampires win");
  57.                 return;
  58.             }
  59.             if(sold<=0){
  60.                 out.println("Werewolves win");
  61.                 return;
  62.             }
  63.  
  64.             if(index<n) {
  65.                 sold += pribav[index];
  66.             }
  67.             index++;
  68.  
  69.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement