Решение задачи Система регистрации с Codeforces

Без пояснения   Просмотров: 116


В скором времени в Берляндии откроется новая почтовая служба "Берляндеск". Администрация сайта хочет запустить свой проект как можно быстрее, поэтому они попросили Вас о помощи. Вам предлагается реализовать прототип системы регистрации сайта.

Система должна работать по следующему принципу. Каждый раз, когда новый пользователь хочет зарегистрироваться, он посылает системе запрос name со своим именем. Если данное имя не содержится в базе данных системы, то оно заносится туда и пользователю возвращается ответ OK, подтверждающий успешную регистрацию. Если же на сайте уже присутствует пользователь с именем name, то система формирует новое имя и выдает его пользователю в качестве подсказки, при этом подсказка также добавляется в базу данных. Новое имя формируется по следующему правилу. К name последовательно приписываются числа, начиная с единицы (name1, name2, ...), и среди них находят такое наименьшее i, что namei не содержится в базе данных сайта.

Код

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n;
    string temp;
    vector<string> a;
    cin >> n;
    for(int i = 0; i < n; ++i){
        cin >>  temp;
        a.push_back(temp);
    }
    cout << "OK" << endl;
    vector<int> res;
    res.push_back(0);
    for(int i = 1; i < n; ++i){
        bool b = false;
        for(int j = i - 1; j >= 0; --j){
            if(a[j] == a[i]){
                b = true;
                cout << a[i] << res[j] + 1 << endl;
                res.push_back(res[j] + 1);
                break;
            }
        }
        if(!b){
            cout << "OK" << endl;
            res.push_back(0);
        }
    }
    return 0;
}
/*
4
abacaba
acaba
abacaba
acab

OK
OK
abacaba1
OK

6
first
first
second
second
third
third

OK
first1
OK
second1
OK
third1

*/

         

Администратор Photo Автор: Администратор




Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться