time limit per test1 second

memory limit per test256 megabytes

inputstandard input

outputstandard output

Modern text editors usually show some information regarding the document being edited. For example, the number of words, the number of pages, or the number of characters.

In this problem you should implement the similar functionality.

You are given a string which only consists of:

uppercase and lowercase English letters,

underscore symbols (they are used as separators),

parentheses (both opening and closing).

It is guaranteed that each opening parenthesis has a succeeding closing parenthesis. Similarly, each closing parentheses has a preceding opening parentheses matching it. For each pair of matching parentheses there are no other parenthesis between them. In other words, each parenthesis in the string belongs to a matching “opening-closing” pair, and such pairs can’t be nested.

For example, the following string is valid: “Hello_Vasya(and_Petya)__bye(and_OK)”.

Word is a maximal sequence of consecutive letters, i.e. such sequence that the first character to the left and the first character to the right of it is an underscore, a parenthesis, or it just does not exist. For example, the string above consists of seven words: “Hello”, “Vasya”, “and”, “Petya”, “bye”, “and” and “OK”. Write a program that finds:

the length of the longest word outside the parentheses (print 0, if there is no word outside the parentheses),

the number of words inside the parentheses (print 0, if there is no word inside the parentheses).

Input

The first line of the input contains a single integer n (1 ≤ n ≤ 255) — the length of the given string. The second line contains the string consisting of only lowercase and uppercase English letters, parentheses and underscore symbols.

Output

Print two space-separated integers:

the length of the longest word outside the parentheses (print 0, if there is no word outside the parentheses),

the number of words inside the parentheses (print 0, if there is no word inside the parentheses).

Examples

input

37

Hello_Vasya(and_Petya)__bye(and_OK)

output

5 4

input

37

a(b___c)de_f(g)__h__i(j_k_l)m

output

2 6

input

27

(LoooonG)shOrt(LoooonG)

output

5 2

input

5

(_)

output

0 0

Note

In the first sample, the words “Hello”, “Vasya” and “bye” are outside any of the parentheses, and the words “and”, “Petya”, “and” and “OK” are inside. Note, that the word “and” is given twice and you should count it twice in the answer.

【题解】



字符串处理。

要求括号内的单词个数以及括号外最长的单词的长度。

把括号里面的内容提取出来然后用一个”_”代替这个括号和里面的内容;

ere_(dfsfd)df把括号去掉后就变成

ere__df

然后提取出来的是

dfsfd

然后在后面加个_



dfsfd;

重复上述操作直到

s存的是括号外的东西

ins存的是括号内的东西;

加上_的目的是区分两个单词;

然后进行所需的操作即可

#include <string>
#include <algorithm>
#include <iostream> using namespace std; int n;
string s;
string ins = ""; bool is_zm(char x)
{
if (('a' <= x && x <= 'z') || ('A' <= x && x <= 'Z'))
return true;
return false;
} int main()
{
//freopen("F:\\rush.txt", "r", stdin);
scanf("%d", &n);
cin >> s;
while (true)
{
bool flag = false;
int len = s.size();
for (int i = 0; i <= len - 1; i++)
if (s[i] == '(')
{
flag = true;
int j = i;
while (s[j] != ')')
j++;
int len1 = j - i + 1;
string temp = s.substr(i + 1, len1 - 2);
s.erase(i, len1);
s.insert(i, "_");
ins += temp;
ins += '_';
break;
}
if (!flag)
break;
}
s = "_" + s + "_";
ins = "_" + ins;
int ma = 0, cntin = 0;
int len = s.size();
int i = 0, j;
while (i <= len - 1)
{
j = i;
if (is_zm(s[i]))
{
while (is_zm(s[j + 1]))
j++;
int len = j - i + 1;
ma = max(len, ma);
}
i = j + 1;
}
len = ins.size();
i = 0;
while (i <= len - 1)
{
j = i;
if (is_zm(ins[i]))
{
cntin++;
while (is_zm(ins[j + 1]))
j++;
}
i = j + 1;
}
cout << ma << " " << cntin << endl;
return 0;
}

【44.10%】【codeforces 723B】Text Document Analysis的更多相关文章

  1. codeforces 723B:Text Document Analysis

    Description Modern text editors usually show some information regarding the document being edited. F ...

  2. Codefoces 723B Text Document Analysis

    B. Text Document Analysis time limit per test:1 second memory limit per test:256 megabytes input:sta ...

  3. Codeforces Round #375 (Div. 2) B. Text Document Analysis 模拟

    B. Text Document Analysis 题目连接: http://codeforces.com/contest/723/problem/B Description Modern text ...

  4. 【Codeforces 723B】Text Document Analysis 模拟

    求括号外最长单词长度,和括号里单词个数. 有限状态自动机处理一下. http://codeforces.com/problemset/problem/723/B Examples input 37_H ...

  5. Java Web程序设计笔记 • 【第10章 JSTL标签库】

    全部章节   >>>> 本章目录 10.1 JSTL 概述 10.1.1 JSTL 简介 10.1.1 JSTL 使用 10.1.2 实践练习 10.2 核心标签库 10.2. ...

  6. 【2017.10.13 ROS机器人操作系统】ROS系统常用术语及资源

    ROS机器人操作系统是一种后操作系统,提供了类似于软件开发中使用到的中间件的功能. ROS: Robot Operating System 机器人操作系统 Package: 功能包 Stack: 功能 ...

  7. 【 BowWow and the Timetable CodeForces - 1204A 】【思维】

    题目链接 可以发现 十进制4 对应 二进制100 十进制16 对应 二进制10000 十进制64 对应 二进制1000000 可以发现每多两个零,4的次幂就增加1. 用string读入题目给定的二进制 ...

  8. codeforces 723B Text Document Analysis(字符串模拟,)

    题目链接:http://codeforces.com/problemset/problem/723/B 题目大意: 输入n,给出n个字符的字符串,字符串由 英文字母(大小写都包括). 下划线'_' . ...

  9. Text Document Analysis CodeForces - 723B

    Modern text editors usually show some information regarding the document being edited. For example, ...

随机推荐

  1. php课程 12-41 多态是什么

    php课程 12-41 多态是什么 一.总结 一句话总结:一种请求,多种响应(根据参数类型和数量) 1.function useUsb(Usb $usb){}这句话是什么意思? 判断$usb参数是否实 ...

  2. MYSQL存储过程中 使用变量 做表名--转

    原文地址:http://blog.csdn.net/business122/article/details/7528859 今天写一个对数据库做快照的存储过程,用到了动态表名,突然发现MYSQL不支持 ...

  3. 1.19 Python基础知识 - 软件目录开发规范及不同模块之间的调用

    一个软件项目的开发,除了需要很厉害的开发能力,同时在软件开发项目时,也需要对项目结构有良好的组织能力,将功能进行拆分,不同的功能放在不同的目录或文件中,方便日后的维护,升级等操作.比如核心代码的目录, ...

  4. 去掉“此电脑”中的“WPS云文档”图标

    平台:Win10 问题:安装了WPS2019专业版后,此电脑窗口出现了一个WPS云文档图标,无法删除,云文档设置中也无法取消. 解决:打开注册表,定位到HKEY_CURRENT_USER\Softwa ...

  5. Scala中的“=>”和“<-”

    “=>”符号大概可以看做是创建函数实例的语法糖,例如 args.foreach(arg => println(arg)) 大概可以看做 args.foreach(Function(arg) ...

  6. 【习题 7-10 Uva11214】Guarding the Chessboard

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 迭代加深搜索. 可以想见最后深度不会很深吧.. 然后皇后之间互相攻击到是允许的.. 就这样 [代码] /* 1.Shoud it u ...

  7. 图文具体解释 IntelliJ IDEA 15 创建 Maven 构建的 Java Web 项目(使用 Jetty 容器)

    图文具体解释 IntelliJ IDEA 15 创建 maven 的 Web 项目 搭建 maven 项目结构 1.使用 IntelliJ IDEA 15 新建一个项目. 2.设置 GAV 坐标 3. ...

  8. 不是IT圈人的IT创业优劣势!

    不是IT圈人的IT创业优势: 1)更尊重市场导向而非技术   2)更关注产品细节而非技术  3)更关注企业平衡而非技术 不是IT圈人的IT创业劣势: 1)因营销而放弃技术规划   2)因需求而丧失技术 ...

  9. eclipse-12.04无图标,无法固定到侧边栏

    今天下载了adt-bundle,但是eclipse打开以后,侧边栏显示的是一个问好,而且没办法固定到侧边栏,导致每次打开eclipse都要进入到相应目录,很麻烦.我们可以通过如下方法设置eclipse ...

  10. Win7下IE11点击无反应的解决方法

    平台:win7 sp1 32bit 问题:点击Internet Explorer在开始菜单.快捷栏的图标和安装目录下的程序均没有反应,鼠标在变成漏斗后恢复原状再无反应.但搜狗浏览器和360浏览器下使用 ...