来源:codeforces:Problem - C - Codeforces

Registration system(注册系统)

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.

Examples

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

翻译:一个新的电子邮件服务“Berlandesk”打算在不久的将来在柏林营业。这个网站的管理员想要尽可能的启动他们的项目,那就是为什么向你寻求帮助的原因。建议你先执行这个注册系统的模型。这份系统应该按以下原则工作。

每次一个新用户想要注册时,他要向系统发出一个带有名字的请求。如果这个名字不存在这个系统的数据库中,将会插入到这个数据库中,并且使用者将得到ok的响应,证明已经成功注册。如果名字已经存在在这个系统中,这个系统将创建一个新的名字,并且作为提示发送给使用者,并将提示也插入到数据库中,这个新名字来源于一以下规则:从一开始的数字,一个接一个的接到名字的后面(名字1,名字2),在这些数字中,找到的i最少,因此i不会存在于数据库中。

输入:

第一行包含整数n (1 ≤ n ≤ 105),接下来的n行包含对系统的请求,每一个请求都是一个非空行,并且每一个请求都不超过32个字母,字母都是小写的拉丁字母。

输出:

打印n行系统对请求的响应,成功时打印OK,如果请求的名字已经存在,则打印带有提示的新名字。

单词:

implement
英 [ˈɪmplɪment , ˈɪmplɪmənt]
美 [ˈɪmplɪment , ˈɪmplɪmənt]
vt. 使生效; 贯彻; 执行; 实施;
n. 工具; 器具; (常指)简单的户外用具;
prototype 英 [ˈprəʊtətaɪp] 美 [ˈproʊtətaɪp]
n. 原型; 雏形; 最初形态;
prompt 英 [prɒmpt] 美 [prɑːmpt]
v. 促使; 导致; 激起; 鼓励,提示,提醒(某人说话); 给(演员)提词;
adj. 立即; 及时的; 迅速的; 敏捷的; 准时的;
n. 提示符; (给演员的)提词,提示;
adv. 准时地;

总结:感觉自己翻译越来越顺手了,虽然部分单词不知道,但是整片文章的要点还是能够掌握。

Registration system(翻译 day 3)相关推荐

  1. Registration system

    Registration system 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 A new e-mail service "Berlandesk" ...

  2. NYOJ991 Registration system 【set的用法】

    原题链接 #include <set> #include <iostream> #include <cstdio> #include <string> ...

  3. XGBoost: A Scalable Tree Boosting System翻译

    XGBoost: A Scalable Tree Boosting System 源文档下载地址(时间仓促翻译不好 见谅 论文矫正后不在博客中同步更新了) 摘要   提升树是一种非常有效且被广泛使用的 ...

  4. Semiautomated IMINT Processing Baseline System——翻译

    题目 半自动的IMINT(图像情报)处理基准系统 摘要 SAIP ACTD(半自动图像情报处理高级概念技术展示项目)的目的是,通过战略上的传感器采集,使图像成为指挥官掌控整个战场的主要源头.该采集系统 ...

  5. How to Make a Computer Operating System

    How to Make a Computer Operating System 如何制作一个操作系统(翻译版) 原文地址:Github:How to Make a Computer Operating ...

  6. 文献阅读笔记 # Bitcoin: A Peer-to-Peer Electronic Cash System

    这篇文献是比特币白皮书,区块链技术的原始论文,需要细品.本文是归纳核心内容的个人阅读笔记. Bitcoin: A Peer-to-Peer Electronic Cash System Author: ...

  7. Image Processing and Analysis_15_Image Registration:A survey of medical image registration——1998...

    此主要讨论图像处理与分析.虽然计算机视觉部分的有些内容比如特 征提取等也可以归结到图像分析中来,但鉴于它们与计算机视觉的紧密联系,以 及它们的出处,没有把它们纳入到图像处理与分析中来.同样,这里面也有 ...

  8. node.js编写网页_为Node.js编写可扩展架构

    node.js编写网页 by Zafar Saleem 通过Zafar Saleem 为Node.js编写可扩展架构 (Writing Scalable Architecture For Nodejs ...

  9. professional issue复习

    Legal concepts Development of UK law • The Kingdom of England was established in 927. • The Principa ...

最新文章

  1. 万物智联时代——2018年AIOT产业蓝皮书正式发布
  2. 时间戳的转换和星期转换
  3. java 文件下载详解_Java 从网上下载文件的几种方式实例代码详解
  4. 呼市计算机应用那个职高好,呼和浩特职业高中哪个比较好
  5. python之迭代器,生成器
  6. Oracle数据库的增删改操作介绍
  7. GJM:C# WinForm开发系列 - DataGridView 使用方法集锦 [转载]
  8. 10个修复ie6下bug技巧[转]
  9. java script应用领域_JavaScript的应用
  10. jdk1.8,java8,安装包阿里云-百度云下载(windos,mac,linux)
  11. 浏览器Browser截屏截长图使用记录220813
  12. Linux NTP服务器配置
  13. 排列组合公式,用向量叉乘的办法计算平行四边形面积
  14. 【算法leetcode每日一练】面试题 08.04. 幂集
  15. 程序员转行干什么好呢
  16. python实现微信hook_GitHub - redtips/wechathook: 借助微信hook,拦截修改某些call,填充进我们的Python代码,进行微信公众号文章的爬取...
  17. Element UI 的日历控件,并在日期中做标注
  18. 计算机网络基础(理论知识全)
  19. opencv历史BUG
  20. 设置在桌面上显示计算机 回收站图标,我电脑属性自定义桌面,没有显示回收站的图标 怎么处理啊...

热门文章

  1. FOR循环及基础应用方式(输出一组字符串)
  2. 【小白专区】求模运算符(%)的使用
  3. 如何用你的Python代码赚取你的第一桶金
  4. 一篇文章告诉你,为什么必须要学Excel?
  5. Vue下拉框动态加载数据
  6. openwrt--uci指令的使用
  7. 这些是在线上最好的免费人工智能教育资源
  8. R语言主成分分析(1)
  9. 响铃:Q1财报“意料之外”增长,百度短视频为何成了意外中的意外?
  10. Multi-task Learning in LM(多任务学习,PLE,MT-DNN,ERNIE2.0)