一、A+++++++++++
题目描述:
有一天,小西的好朋友Antinomy来到西大参观,发现校园里有两副巨大的画,一幅的标题是《创新》,一幅的标题是《创业》,但都是空白的。于是Antinomy问小西:“这两幅画应该是画的什么呀?”小西:“里面是正在从事创新或者创业的同学。”Antinomy:“什么是创新?”小西:“从事高水平科研技术研究和参加高水平学科竞赛,简单来说就是学术活动和技能训练。”Antinomy:“什么是创业?”小西:“基于行业实际发展情况和实时政治经济情况,在有限资本下创立可持续盈利且具有较大发展空间的活动。”小西:“至于为什么这两幅画是空白的,因为同学们都在参加创新创业竞赛。”
众所周知,创新创业类竞赛是我们学校人均参加的重量级竞赛,这一类别的竞赛在评奖评优或推免评比的考核中占据绝对性优势,即所谓的“A+”类竞赛。
但众所周知,之所以A+类竞赛是A+类竞赛,只是因为最高只能是这么多,现在Antinomy想知道,假设没有这个限制,给出竞赛名称冠名的Title集合,请求出这个竞赛的等级。
小西认为,对于给出的nnn个title中,每能组成一对<national,nternational><national,international><national,international>(也就是中国国际),那么竞赛的等级就可以在A的基础上增加一个+。
输入描述
输入第一行为测试用例T,接下来有T组测试数据每组测试用例第一行为一个整数n,表示有n个title,接下来n行每行一个字符串表示第i个title,title只可能是national或者international
1≤T≤100
3≤n≤10^4
输出描述
对于每组测试用例输出此时的竞赛等级
示例
输入
4
3
national
international
national
4
national
international
national
international
4
national
national
national
national
4
international
international
national
national
输出
A+
A++
A
A++
这题就是简单的统计national和international的数量,取两者最小值,即两者最多能组成多少对。
#include<iostream>
#include<string>
using namespace std;
int main ()
{
int t;
cin >> t;
while ( t-- )
{
int n, book[2] = {
0 };
cin >> n;
while ( n-- )
{
string arr;
cin >> arr;
if ( arr == "national" )
book[0]++;
if ( arr == "international" )
book[1]++;
}
cout << "A";
for ( int i = 1; i <= min ( book[0], book[1] ); i++ )
cout << "+";
cout << endl;
}
return 0;
}
二、GDP Carry
题目描述
小西和Antinomy又来到君武楼,这里正在做A+类竞赛校赛的答辩,他们偷偷翻了翻参加答辩的项目组的项目计划书,发现每个计划书都有日流水这样的指标,他们决定做一个游戏。现在有nnn个项目计划书,每个计划书上有一个日流水数字,将这nnn个日流水视为一个长度为nnn的序列fff,两人轮流操作,Antinomy先手,Antinomy每次需要把fff中非空的连续的一段移除,要求这一段的元素和需要为奇数;小西也每次需要把F中非空的连续的一段移除,但是这一段的元素和需要为偶数,如果轮到谁的时候无法操作下去那么这个人就判定为输。移除一段之后,原来这一段之前的部分和原来这一段之后的部分也视为连续。已知他们都会采取最优的策略,给出这nnn个日流水,请问最后谁会赢呢?
输入描述
第一行输入nnn,表示fff的长度,接下来一行nnn个整数分别表示f0,f1·······fn-1
3<=n<=10^6
1<=fi<=10^9
输出描述