Advertisement
Guest User

Untitled

a guest
Apr 21st, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.35 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. #include <vector>
  4. using namespace std;
  5. struct stari
  6. {
  7.     int a, b;
  8.     char c;
  9. };
  10. vector<stari> vec[1024];
  11. int n, i, j, k,m;
  12. stari nod;
  13. stari finale[256];
  14. void DFSTryHard(char sir[256], int x,int nr)
  15. {
  16.     int ok;
  17.     for (int i = 0; i < vec[x].size(); i++)
  18.     {
  19.         ok = 0;
  20.         if (k == nr + 1)
  21.         {
  22.             for (int j = 1; j <= m; j++)
  23.             {
  24.                 if (vec[x][i].a == finale[j].a && vec[x][i].b == finale[j].b && vec[x][i].c == finale[j].c)
  25.                 {
  26.                     ok = 1;
  27.                     break;
  28.                 }
  29.             }
  30.         }
  31.         if (ok == 1 && k == nr + 1)
  32.         {
  33.             sir[nr] = vec[x][i].c;
  34.             sir[nr + 1] = NULL;
  35.             cout << sir << '\n';
  36.             return;
  37.         }
  38.         if (k > nr + 1)
  39.         {
  40.             sir[nr] = vec[x][i].c;
  41.             sir[nr + 1] = NULL;
  42.             if(vec[x][i].b!=-1)
  43.                 DFSTryHard(sir, vec[x][i].b, nr + 1);
  44.         }
  45.         if (k < nr + 1)
  46.         {
  47.             return;
  48.         }
  49.     }
  50. }
  51. int main()
  52. {
  53.     cin >> n;//numarul de stari, practic numarul de muchii
  54.     for (i = 1; i <= n; i++)//citesti starile, capetele muchiei si litera de pe ea
  55.     {
  56.         cin >> nod.a >> nod.b >> nod.c;
  57.         vec[nod.a].push_back(nod);
  58.     }
  59.     cin >> m;//numarul de stari finale
  60.     for (i = 1; i <= m; i++)//citesti starile ca mai sus
  61.     {
  62.         cin >> finale[i].a >> finale[i].b >> finale[i].c;
  63.     }
  64.     cin >> k;//numarul de litere pe care vrei sa le aiba cuvantul tau
  65.     char sir[256];
  66.     DFSTryHard(sir, 1, 0);//un DFS TRY HARD care afiseaza solutiile
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement