// vložíme knihovnu se základními funkcemi a třídami #include int main() { // deklarujeme a načteme n int n; scanf("%d\n",&n); // vytvoříme si pole in dvojic (string, int) délky n std::vector> in(n, {"", 0}); // vytvoříme si pole out celých čísel délky n std::vector out(n, 0); // do každé dvojice v in uložíme textově odpovídající řádek a index for(int i = 0; i < n; i++) { getline(std::cin, in[i].first); in[i].second = i; } // seřadíme in (porovnává se lexikograficky, naštěstí ale časy stavby jsou unikátní) std::sort(in.begin(), in.end()); // poznamenáme si do out, jako kolikátý byl který dům postaven for(int i = 0; i < n; i++) { out[in[i].second] = i + 1; // i + 1, protože zadání čísluje od 1 } // vypíšeme čísla domů for(int i = 0; i < n; i++) { printf("%d\n", out[i]); } // zahlásíme, že program skončil úspěšně return 0; }