codefores 4C(统计出现过的次数)
2012-12-15 10:10
225 查看
F - Registration system
Time Limit:5000MS Memory Limit:65536KB 64bit IO Format:%I64d
& %I64u
Submit Status Practice CodeForces
4C
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
Input
Output
Input
Output
Time Limit:5000MS Memory Limit:65536KB 64bit IO Format:%I64d
& %I64u
Submit Status Practice CodeForces
4C
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
Input
4 abacaba acaba abacaba acab
Output
OK OK abacaba1 OK
Input
6 first first second second third third
Output
OK first1 OK second1 OK third1
#include<stdio.h> #include<string.h> char a[100005][35],t[35]; int main() { int n,s[100005]; while(scanf("%d",&n)!=EOF) { int f=0,i,j,k=0; getchar(); memset(s,0,sizeof(s)); for(i=0;i<n;i++) { gets(t); for(j=0;j<k;j++) if(strcmp(t,a[j])==0) break; if(j==k) { strcpy(a[k],t); s[k++]=1; printf("OK\n"); } else printf("%s%d\n",t,s[j]++); } } return 0; }
map<string, int> maps; int main() { int n; cin>> n; string s; while(n--) { cin>> s; maps[s] ++; if(maps[s] > 1) cout<< s<< maps[s] - 1<< endl; else cout<< "OK"<< endl; } return 0; }
相关文章推荐
- HashMap分拣存储2:统计每个单词出现的次数(采用面向对象)
- 金山2014秋招笔试题——统计单词在一篇文章中出现的次数和位置
- java中统计一个字符串串在另一个字符串中出现的次数
- c程序设计语言_习题1-13_统计输入中单词的长度,并且根据不同长度出现的次数绘制相应的直方图
- 【练手】写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数
- 编程之美读书笔记---统计在从1到n的正整数中1出现的次数
- 面试编程题1:给定一个字符串,统计出每个字母出现次数
- python 统计单词出现次数
- 统计文件字数,并按出现次数打印结果
- 统计某个字符串在文件中出现的次数
- Linux 统计某个字符串出现的次数
- 学着用map统计字符出现的次数,也可以用来标记字符是否出现过
- 统计字符串出现的次数
- 【c语言】统计一个数字在排序数组中出现的次数
- 统计文本中字符串出现次数
- 判断一个字符串中出现次数最多的字符,并统计这个次数
- 统计字符串中各个字符出现的次数
- hadoop处理日志 统计分析每天出现ip次数最多的前3条
- 一个一维整形数组,若干个数字,统计数组中不同的数字出现的次数,并按照出现频率从小到大排序输出,相同频率按数字大小排序输出
- Java编程实现统计数组中各元素出现次数的方法