Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- #include <vector>
- using namespace std;
- struct stari
- {
- int a, b;
- char c;
- };
- vector<stari> vec[1024];
- int n, i, j, k,m;
- stari nod;
- stari finale[256];
- void DFSTryHard(char sir[256], int x,int nr)
- {
- int ok;
- for (int i = 0; i < vec[x].size(); i++)
- {
- ok = 0;
- if (k == nr + 1)
- {
- for (int j = 1; j <= m; j++)
- {
- if (vec[x][i].a == finale[j].a && vec[x][i].b == finale[j].b && vec[x][i].c == finale[j].c)
- {
- ok = 1;
- break;
- }
- }
- }
- if (ok == 1 && k == nr + 1)
- {
- sir[nr] = vec[x][i].c;
- sir[nr + 1] = NULL;
- cout << sir << '\n';
- return;
- }
- if (k > nr + 1)
- {
- sir[nr] = vec[x][i].c;
- sir[nr + 1] = NULL;
- if(vec[x][i].b!=-1)
- DFSTryHard(sir, vec[x][i].b, nr + 1);
- }
- if (k < nr + 1)
- {
- return;
- }
- }
- }
- int main()
- {
- cin >> n;//numarul de stari, practic numarul de muchii
- for (i = 1; i <= n; i++)//citesti starile, capetele muchiei si litera de pe ea
- {
- cin >> nod.a >> nod.b >> nod.c;
- vec[nod.a].push_back(nod);
- }
- cin >> m;//numarul de stari finale
- for (i = 1; i <= m; i++)//citesti starile ca mai sus
- {
- cin >> finale[i].a >> finale[i].b >> finale[i].c;
- }
- cin >> k;//numarul de litere pe care vrei sa le aiba cuvantul tau
- char sir[256];
- DFSTryHard(sir, 1, 0);//un DFS TRY HARD care afiseaza solutiile
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement