Advertisement
caxapexac

Untitled

Sep 16th, 2019
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.95 KB | None | 0 0
  1.  
  2. #include <iostream>
  3. #include <fstream>
  4. #include <vector>
  5. #include <stack>
  6. #include <string>
  7. #include <algorithm>
  8. #include <memory>
  9. #include <cmath>
  10.  
  11.  
  12. // Имеется n городов, пронумерованных от 1 до n. Некоторые пары городов
  13. // соединены дорогами. Определить, можно ли попасть по этим дорогам
  14. // из одного заданного города в другой заданный город. Входная информация
  15. // о дорогах задаётся в виде последовательности пар чисел i и j (i < j и i, j1..n),
  16. // указывающих, что i-й и j-й города соединены дорогами.
  17.  
  18. struct City {
  19.     int id; //i
  20.     int road; //j
  21.     struct City* nextCity;
  22. };
  23.  
  24. struct World {
  25.     City* head;
  26. };
  27.  
  28. int main2 (int argc, char *argv[]);
  29.  
  30. void push (World& world, int i, int j);
  31.  
  32. bool solve (World& world, int a, int b);
  33.  
  34.  
  35. int main (int argc, char** argv) {
  36.     World world;
  37.     push(world, 1, 2);
  38.     push(world, 2, 3);
  39.     push(world, 1, 3);
  40.     push(world, ,);
  41.     //Если i или j == -1 то Тимур идёт нахуй
  42.     return 0;
  43. }
  44.  
  45. void push (World& world, int& i, int j) {
  46.     City* current = new City();
  47.     current->id = i;
  48.     current->road = j;
  49.     current->nextCity = nullptr;
  50.     if (!world.head) {
  51.         world.head = current;
  52.     }
  53.     else {
  54.         City* last = world.head;
  55.         while (last->nextCity) last = last->nextCity;
  56.         last->nextCity = current;
  57.     }
  58. }
  59.  
  60. bool solve (World& world, int a, int b) {
  61.     if (a == b) return true;
  62.     bool result = false;
  63.     City* current = world.head;
  64.     while (current != nullptr) {
  65.         if (current->id == a) {
  66.             current->id = -1;
  67.             result |= solve(world, current->road, b);
  68.         }
  69.         current = current->nextCity;
  70.     }
  71.     return false;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement