func_code_string: #include <bits/stdc++.h>   using namespace std;   struct osoba {     string ime, prezime;   };   int main() {     int n;     cin >> n;     vector<osoba> osobe(n);     vector<int> redoslijed(n);     vector<string> minori(n);     bool trigger = true;     for (int i = 0; i < n; i++) cin >> osobe[i].ime >> osobe[i].prezime;     for (int i = 0; i < n; i++) cin >> redoslijed[i];     if (strcmp(osobe[redoslijed[0] - 1].ime.c_str(),                osobe[redoslijed[0] - 1].prezime.c_str()) < 0)       minori[0] = osobe[redoslijed[0] - 1].ime;     else       minori[0] = osobe[redoslijed[0] - 1].prezime;     for (int i = 1; i < n; i++) {       if (strcmp(minori[i - 1].c_str(), osobe[redoslijed[i] - 1].ime.c_str()) >               0 &&           strcmp(minori[i - 1].c_str(),                  osobe[redoslijed[i] - 1].prezime.c_str()) <= 0)         minori[i] = osobe[redoslijed[i] - 1].prezime;       else if (strcmp(minori[i - 1].c_str(),                       osobe[redoslijed[i] - 1].ime.c_str()) <= 0 &&                strcmp(minori[i - 1].c_str(),                       osobe[redoslijed[i] - 1].prezime.c_str()) > 0)         minori[i] = osobe[redoslijed[i] - 1].ime;       else if (strcmp(minori[i - 1].c_str(),                       osobe[redoslijed[i] - 1].ime.c_str()) <= 0 &&                strcmp(minori[i - 1].c_str(),                       osobe[redoslijed[i] - 1].prezime.c_str()) <= 0) {         if (strcmp(osobe[redoslijed[i] - 1].ime.c_str(),                    osobe[redoslijed[i] - 1].prezime.c_str()) < 0)           minori[i] = osobe[redoslijed[i] - 1].ime;         else           minori[i] = osobe[redoslijed[i] - 1].prezime;       } else {         cout <<  NO  << endl;         trigger = false;         break;       }     }     if (trigger) cout <<  YES  << endl;     return 0;   }   