Advertisement
vlatkovski

Registracija

Oct 7th, 2017
331
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.54 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int stoi(string &s) {
  5.     stringstream ss(s);
  6.     int i;
  7.     ss >> i;
  8.     return i;
  9. }
  10.  
  11. int main() {
  12.     map<string, set<int>> m;
  13.     string ts; cin >> ts;
  14.     int n; cin >> n;
  15.     for (int i = 0; i < n; ++i) {
  16.         string s; cin >> s;
  17.         string ns, ids;
  18.         for (int j = 0; j < s.length(); ++j) {
  19.             int ci = s.at(j) - '0';
  20.             if (0 < ci && ci < 10) {
  21.                 ns = s.substr(0, j);
  22.                 ids = s.substr(j);
  23.                 break;
  24.             }
  25.             ns = s;
  26.         }
  27.         if (ids == "") ids = "0";
  28.         m[ns].insert( stoi(ids) );
  29.     }
  30.     if (m[ts].empty()) {
  31.         cout << ts << endl;
  32.     }
  33.     else {
  34.         string ns, ids;
  35.         for (int i = 0; i < ts.length(); ++i) {
  36.             int ci = ts.at(i) - '0';
  37.             if (0 < ci && ci < 10) {
  38.                 ns = ts.substr(0, i);
  39.                 ids = ts.substr(i);
  40.                 break;
  41.             }
  42.             ns = ts;
  43.         }
  44.         if (ids == "") ids = "0";
  45.         int id = stoi(ids);
  46.         bool found = false;
  47.         for (auto it = m[ns].begin(); it != m[ns].end(); ++it) {
  48.             if (*it == id) {
  49.                 id++;
  50.             }
  51.             else {
  52.                 if (id == 0) cout << ns << endl;
  53.                 else cout << ns << id << endl;
  54.                 found = true;
  55.                 break;
  56.             }
  57.         }
  58.         if (!found) {
  59.             cout << ns << (*prev(m[ns].end())) + 1 << endl;
  60.         }
  61.     }
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement