Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <vector>
- #include <string>
- using namespace std;
- int search(int& v, vector<int>& ways, vector<vector<int>>& rooms, vector<vector<int>>& colors, int way) {
- if (way < ways.size()) {
- for (int i = 0; i < rooms[v].size(); ++i) {
- if (colors[v][i] == ways[way]) {
- int temp_v = v;
- v = rooms[v][i];
- if (search(v, ways, rooms, colors, way + 1) != -1) {
- return v;
- }
- else {
- v = temp_v;
- }
- }
- }
- }
- else {
- return v;
- }
- return -1;
- }
- int main() {
- std::ifstream fin("input.txt");
- std::ofstream fout("output.txt");
- int n, m;
- fin >> n >> m;
- vector<vector<int>> rooms(n+1);
- vector<vector<int>> colors(n+1);
- for (int i = 0; i < m; ++i) {
- int v, u, color;
- fin >> v >> u >> color;
- rooms[v].push_back(u);
- colors[v].push_back(color);
- rooms[u].push_back(v);
- colors[u].push_back(color);
- }
- int way;
- fin >> way;
- vector<int> ways(way);
- for (int i = 0; i < way; ++i) {
- fin >> ways[i];
- }
- int v = 1;
- if (search(v, ways, rooms, colors, 0) != -1) {
- fout << v << endl;
- return 0;
- }
- fout << "INCORRECT" << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment