CSU-ACM暑假集训基础组七夕专场 D - Problem D
来源:互联网 发布:android和linux的关系 编辑:程序博客网 时间:2024/05/22 02:20
Description
A new e-mail service "Berlandesk" is going to be opened in Berland in the near future. The site administration wants to launch their project as soon as possible, that's why they ask you to help. You're suggested to implement the prototype of site registration system. The system should work on the following principle.
Each time a new user wants to register, he sends to the system a request with his name. If such a name does not exist in the system database, it is inserted into the database, and the user gets the response OK, confirming the successful registration. If the name already exists in the system database, the system makes up a new user name, sends it to the user as a prompt and also inserts the prompt into the database. The new name is formed by the following rule. Numbers, starting with 1, are appended one after another to name (name1,name2, ...), among these numbers the least i is found so that namei does not yet exist in the database.
Input
The first line contains number n (1 ≤ n ≤ 105). The following n lines contain the requests to the system. Each request is a non-empty line, and consists of not more than 32 characters, which are all lowercase Latin letters.
Output
Print n lines, which are system responses to the requests: OK in case of successful registration, or a prompt with a new name, if the requested name is already taken.
Sample Input
4abacabaacabaabacabaacab
OKOKabacaba1OK
6firstfirstsecondsecondthirdthird
OKfirst1OKsecond1OKthird1
map的简单题,代码如下:
#include <iostream>#include<cstdio>#include<map>#include<string>#include<cstring>using namespace std;int n,maxn;string maxc;//char* a;string a;map<string, int> name;int main(){ scanf("%d",&n); int i; map<string ,int>::iterator ite; for(i=0,ite=name.begin();i<n;i++,ite++) { //scanf("%s",a); cin>>a; name[a]++; if(name[a]==1) cout<<"OK"<<endl; // else printf("%s%d\n",a,name[a]-1); else cout<<a<<name[a]-1<<endl; } return 0;}
- CSU-ACM暑假集训基础组七夕专场 D - Problem D
- CSU-ACM暑假集训基础组七夕专场 F - Problem F
- CSU-ACM暑假集训基础组训练赛(2) D - Problem D
- CSU-ACM2017暑假集训比赛2 D
- CSU-ACM2017暑假集训比赛3D
- CSU-ACM暑假集训基础组训练赛(1) A - Problem A
- CSU-ACM暑假集训基础组训练赛(1) B - Problem B
- CSU-ACM暑假集训基础组训练赛(2) B - Problem B
- CSU-ACM暑假集训基础组训练赛(5-1) B - Problem B
- CSU-ACM暑假集训基础组训练赛(5-1) C - Problem C
- CSU-ACM暑假集训基础组训练赛(5-1) A - Problem A
- csu-acm2017暑假集训2-二分搜索D
- CSU-ACM2017暑假集训2-二分搜索 D
- csu Problem D: Long Long
- 2016ACM暑假集训 - Prime Ring Problem
- CSU-ACM暑假集训训练1(二分 2015/7/21)
- 暑假集训第三周 STL D - 排列
- 2017CSU暑假集训 Languages
- 在ubuntu13.10版本上面架设开发mtk6572安卓环境
- 【U3D】Unity3D的基础认识
- MongoDB sharding
- POJ-2001--Shortest Prefixes (字典树)
- 网络访问频繁的项目---ThreadManager(线程池管理类)
- CSU-ACM暑假集训基础组七夕专场 D - Problem D
- Free Candies - UVa 10118 dp
- 从零开始学习Zstack之2
- synchronized详解
- 为RT-Thread实现一个傻瓜式的工程向导工具(中期报告)
- CSU-ACM暑假集训基础组七夕专场 F - Problem F
- 从零开始学习Zstack之3
- Fast Food - UVa 662 dp
- POJ 1141 Brackets Sequence