Problem Statement

For two strings $A$ and $B$, let $A+B$ denote the concatenation of $A$ and $B$ in this order.

You are given $N$ strings $S_1,\ldots,S_N$. Modify and print them as follows, in the order $i=1, \ldots, N$:

  • if none of $S_1,\ldots,S_{i-1}$ is equal to $S_i$, print $S_i$;
  • if $X$ $(X>0)$ of $S_1,\ldots,S_{i-1}$ are equal to $S_i$, print $S_i+$ ( $+X+$ ), treating $X$ as a string.

Constraints

  • $1 \leq N \leq 2\times 10^5$
  • $S_i$ is a string of length between $1$ and $10$ (inclusive) consisting of lowercase English letters.

Input

Input is given from Standard Input in the following format:

$N$
$S_1$
$S_2$
$\vdots$
$S_N$

Output

Print $N$ lines as specified in the Problem Statement.


Sample Input 1

5
newfile
newfile
newfolder
newfile
newfolder

Sample Output 1

newfile
newfile(1)
newfolder
newfile(2)
newfolder(1)

Sample Input 2

11
a
a
a
a
a
a
a
a
a
a
a

Sample Output 2

a
a(1)
a(2)
a(3)
a(4)
a(5)
a(6)
a(7)
a(8)
a(9)
a(10)

拿个map对字符串进行统计即可。

#include<bits/stdc++.h>
using namespace std;
const int N=2e5+5;
string s[N];
char t[15];
int n;
map<string,int>g;
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%s",t);
s[i]=t;
printf("%s",t);
if(g[s[i]])
printf("(%d)",g[s[i]]);
putchar('\n');
g[s[i]]++;
}
}

[ABC261C] NewFolder(1)的更多相关文章

  1. 「译」JUnit 5 系列:扩展模型(Extension Model)

    原文地址:http://blog.codefx.org/design/architecture/junit-5-extension-model/ 原文日期:11, Apr, 2016 译文首发:Lin ...

  2. Linux用户管理(centos)

    useradd testuser; 添加用户 testuser为用户名 passwd testuser; 修改用户密码 提示两次输入密码   赋予root权限 修改 /etc/sudoers 文件,找 ...

  3. Java 程序员必须掌握的 Linux 命令(转:导师Jencks)

    1.查找文件 find / -name filename.txt根据名称查找/目录下的filename.txt文件. find . -name "*.xml"递归查找所有的xml文 ...

  4. vs2008所有DTE.ExecuteCommand命令

    下面列表中为我当前机器上visual studio 2008所有DTE.ExecuteCommand命令的内容: 其中:Build.开头对应“编译”菜单下命令(如:Build.RebuildSolut ...

  5. 修改后的CopyFile类

    这是修改后的CopyFile类,前面那个类有局限性,它不能复制大文件 这是我第一次写成一个能够实际应用的类,感谢博主们的无私奉献,感谢SeayXu老师的提点 但是这个类也并不是完美无缺,它复制文件没有 ...

  6. [已解决] git 重命名文件夹

    git mv oldfolder newfolder 原文地址:http://www.cnblogs.com/gifisan/p/5980608.html

  7. C#调用RAR压缩与解压

    public void RARsave(string rarPatch, string rarFiles,string  patch,string rarName)        {          ...

  8. TFS二次开发系列:六、TFS的版本控制

    在TFS中对于版本控制是在WorkSpace工作区来控制的. 首先我们先整理WorkSpace的一些基本使用方法. CheckIn:迁入挂起的操作 CreateMapping:创建一个本地映射地址 D ...

  9. java.io.file

    package cn.edu.tongji.cims.wade.system;     import java.io.*;     public class FileOperate {     pub ...

  10. Java开发必会的Linux命令

    Java开发必会的Linux命令 作为一个Java开发人员,有些常用的Linux命令必须掌握.即时平时开发过程中不使用Linux(Unix)或者mac系统,也需要熟练掌握Linux命令.因为很多服务器 ...

随机推荐

  1. API技术的使用场景

    ​ 互联网的发展和普及,API技术也变得越来越重要.API是应用程序接口,它是一种连接不同应用程序或系统之间数据交换和通信的方式.API技术不仅提高了不同应用程序之间的互操作性,还加速了应用程序的开发 ...

  2. WPF学习 - 动画基础(2)

    上一篇文章粗略的介绍了一下Animation类.本篇介绍一下Storyboard. Storyboard,姑且翻译成"故事板"吧.实际上它是一个Animation对象的容器,可以容 ...

  3. iOS交叉编译

    编译objc程序 ~/toolchain4/pre/bin/arm-apple-darwin9-gcc -arch arm -lobjc -framework CoreFoundation -fram ...

  4. 【krpano】 ASP点赞插件

    简述 这是一个Asp版krpano点赞案例,运用asp+xml读写.存储数据,结合krpano代码实现的功能:现将案例上传网站供大家学习研究,希望对大家有所帮助. 功能 用户在网页可点赞后显示已点赞数 ...

  5. 大模型时代,如何快速开发AI应用

    本文分享自华为云社区 <[云享问答]第3期:大模型时代,如何快速开发AI应用>,作者:华为云社区精选. 大模型快速普及应用的当下,AI浪潮汹涌而至,对于开发者来说,开发一款属于自己的AI应 ...

  6. 历时一个月,《穿透Laravel》全书完成!

    近几年来Laravel在PHP领域大放异彩,逐渐成为PHP开发框架中的中流砥柱. 这个系列的文章, 会带你一起探知Laravel框架底层的实现细节.与其他框架相比,Laravel的设计理念确实更为先进 ...

  7. 快速添加string value Refactor->android->Extract Android String 或按Ctrl+1 出现列表框选择Extract Android String 来进行String国际化

    快速添加string value Refactor->android->Extract Android String或按Ctrl+1 出现列表框选择Extract Android Stri ...

  8. CF707B

    题目简化和分析: 这题看着玄胡很水实际. 我们需要做什么? 只需对每个工厂周围的面包店遍历一遍打擂台取最小 注意只对面包店遍历,所以对工厂设标记 如果打完擂台发现 \(ans=inf\) 则说明全是工 ...

  9. 本地化部署自建类ChatGPT服务远程访问

    Text generation web UI可为类ChatGPT的大型语言模型提供能够快速上手的网页界面,不仅可以提高使用效率,还可满足私有化部署,或对模型进行自定义.目前,该Web UI已经支持了许 ...

  10. React技术栈支援Vue项目,你需要提前了解的

    写在前面 react整体是函数式的思想,把组件设计成纯组件,状态和逻辑通过参数传入,而vue的思想是响应式的,也就是基于是数据可变的,通过对每一个属性建立Watcher来监听, 当属性变化的时候,响应 ...