Advertisement
MystMe

Untitled

Feb 12th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.46 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. int main() {
  7.     long N = 0;
  8.     long M = 0;
  9.     cin >> N >> M;
  10.  
  11.     vector<long> tmp(N,0);
  12.     vector<vector<long>> verges(M, tmp);
  13.  
  14.     long v1 = 0;
  15.     long v2 = 0;
  16.     for (long i = 0; i < M; i++) {
  17.         cin >> v1 >> v2;
  18.         verges[v1][v2] = 1;
  19.         verges[v2][v1] = 1;
  20.     }
  21.     cin >> v1 >> v2;
  22.  
  23.     vector<bool> used (N);
  24.     for (long i = 0; i < N; i++) {
  25.         used[i] = false;
  26.     }
  27.  
  28.     vector<long> dist (M);
  29.     for (long i = 0; i < M; i++) {
  30.         dist[i] = 400001;
  31.     }
  32.     dist[v1] = 0;
  33.  
  34.  
  35.     long ind = v1;
  36.     long min = 400001;
  37.     long count = 0;
  38.     do {
  39.         for (long i = 0; i < N; i++) {
  40.             if (dist[i] < min && !used[i]) {
  41.                 min = dist[i];
  42.                 ind = i;
  43.             }
  44.         }
  45.  
  46.         if (ind != 400001) {
  47.             for (long i = 0; i < N; i++) {
  48.                 if (verges[ind][i] != 0) {
  49.                     long temp = min + 1;
  50.                     if (temp < dist[i]) {
  51.                         dist[i] = temp;
  52.                         count = 0;
  53.                     }
  54.                     if (temp == dist[i]) {
  55.                         count++;
  56.                     }
  57.                 }
  58.             }
  59.             used[ind] = true;
  60.         }
  61.     } while (ind != v2);
  62.  
  63.     if (min == 400001) {
  64.         cout << -1 << endl;
  65.     }
  66.     else {
  67.         cout << min << endl;
  68.     }
  69.     return 0;
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement