This cheeseburger you don't need

题目连接:

http://acm.timus.ru/problem.aspx?space=1&num=1993

Description

Master Yoda is the oldest member of the Jedi Council. He conducts preparatory classes of little Younglings up to the moment they get a mentor. All Younglings adore master Yoda and they hope to grow as strong and wise as he is. Just like all little children, Younglings are absolutely hooked on new games and ideas. Now they decided to learn to speak just like master Yoda. Help the Younglings understand how Yoda would say this or that sentence.

Yoda is speaking the Galactic language using the specific word order — so-called "object-subject-verb".

Your program receives a sentence that interests the Younglings. They have already highlighted all important parts in the sentence. They use the curly {}-brackets for objects, round ()-brackets for subjects and square []-brackets for verbs.

A sentence in the input can be simple or complex. If the sentence is complex, then it consists of two simple sentences separated by a comma. Sometimes a comma is followed by a conjunction that is not in the brackets.

Each simple question has exactly one object, one subject and one verb. Your task is to simply put them in the correct order. Namely, first the object, then the subject, finally the verb. Also, please do not forget that only the first word in the whole sentence should begin with capital letter.

Input

The single line contains a sentence that interests the Younglings. The length of the sentence does not exceed 100 characters. All the words in the sentence consist of Latin letters. The first letter of the first word is capitalized and the rest are small. The sentence may contain a comma. Each simple sentence contains all three types of brackets. Each pair of brackets surrounds one or more words. No pair of brackets can surround the other bracket. Brackets are always located on the borders of words. The words in the sentence are separated by a single space. There is no space character before a comma or a closing bracket and also after an opening bracket. The conjunction (which can be only after a comma) is the only word that is not surrounded by a pair of brackets.

Output

Print the sentence with the word order Yoda would use. All brackets must be omitted. You should separate the words by a single space.

Sample Input

(We) [are] {blind}, if (we) [could not see] {creation of this clone army}

Sample Output

Blind we are, if creation of this clone army we could not see

Hint

题意

没括号的原样输出,有括号的就优先输出大括号,中括号,然后小括号这样

句首需要大写

题解:

模拟题,烦……

代码

#include <bits/stdc++.h>

using namespace std;

string base;
vector < string > str; string Clear_32(string s){
string res;
int Ed = s.size() - 1;
for( ; Ed >= 0 && s[Ed] == ' ' ; -- Ed);
for(int i = 0 ; i < s.size() ; ++ i){
if( s[i] != ' '){
for(int j = i ; j <= Ed ; ++ j) res.push_back( s[j] );
break;
}
}
return res;
} void Solve( string s , int INDEX ){
stack < int > sp;
string F[4];
int pos[4];
F[0]=F[1]=F[2]=F[3]="";
bool find = false;
for(int i = 0 ; i < s.size() ; ++ i){
if(s[i] == '[' || s[i] == '(' || s[i] == '{'){
sp.push( i );
if( find == false ) F[0]=s.substr(0,i);
find = true;
if(s[i] == '{') pos[1] = i;
else if(s[i] =='(') pos[2] = i;
else pos[3] = i;
}
else if(s[i] == ']' || s[i] == ')' || s[i] == '}'){
string * ptr = F;
int extra = 0;
if( s[i] == '}' ) extra = 1;
else if( s[i] == ')' ) extra=2;
else extra=3;
ptr += extra;
*ptr=s.substr(pos[extra]+1,i-pos[extra]-1);
}
}
for(int i = 1 ; i < 4 ; ++ i) F[i] = Clear_32( F[i] );
cout << F[0];
if(INDEX==0){
for(int i = 0 ; i < 4 ; ++ i)
if(F[i].size()){
if(F[i][0] <= 'z' && F[i][0] >='a'){
F[i][0] = F[i][0] - 'a' + 'A';
}
for(int j = 1 ; j < F[i].size() ; ++ j){
if(F[i][j] <= 'Z' && F[i][j] >= 'A'){
F[i][j] = F[i][j] - 'A' + 'a';
}
}
for(int k = i + 1 ; k < 4 ; ++ k){
for(int v = 0 ; v < F[k].size() ; ++ v){
if(F[k][v] <= 'Z' && F[k][v] >= 'A'){
F[k][v] = F[k][v] - 'A' + 'a';
}
}
}
break;
}
}
int isfirst = 0;
for(int i = 1 ; i < 4 ; ++ i){
if(F[i].size()){
if(isfirst==0) isfirst = 1;
else cout << " ";
cout << F[i];
}
}
} int main(int argc,char *argv[]){
// freopen("out.txt" , "w" , stdout );
getline(cin , base);
for(int i = 0 ; i < base.size() ; ++ i){
int j;
string temp;
for(j = i ; j < base.size() ; ++ j){
if( base[j] ==',' && i != j ) break;
temp.push_back( base[j] );
}
str.push_back( temp );
i = j - 1;
}
for(int i = 0 ; i < str.size() ; ++ i) Solve( str[i] , i );
cout << endl;
return 0;
}

URAL 1993 This cheeseburger you don't need 模拟题的更多相关文章

  1. ural 1993 This cheeseburger you don't need

    顺次存到{} [] () 遇到逗号就处理下,最后处理逗号之后的 #include <iostream> #include <cstring> #include <stri ...

  2. URAL 2046 A - The First Day at School 模拟题

    A - The First Day at SchoolTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudg ...

  3. ural 2032 Conspiracy Theory and Rebranding (数学水题)

    ural 2032  Conspiracy Theory and Rebranding 链接:http://acm.timus.ru/problem.aspx?space=1&num=2032 ...

  4. Ural 1209. 1, 10, 100, 1000... 一道有趣的题

    1209. 1, 10, 100, 1000... Time limit: 1.0 secondMemory limit: 64 MB Let's consider an infinite seque ...

  5. URAL 1519 Formula 1(插头DP,入门题)

    Description Background Regardless of the fact, that Vologda could not get rights to hold the Winter ...

  6. ural 2020 Traffic Jam in Flower Town(模拟)

    2020. Traffic Jam in Flower Town Time limit: 1.0 secondMemory limit: 64 MB Having returned from Sun ...

  7. ural 2015 Zhenya moves from the dormitory(模拟)

    2015. Zhenya moves from the dormitory Time limit: 1.0 secondMemory limit: 64 MB After moving from hi ...

  8. Ural 1079 - Maximum

    Consider the sequence of numbers ai, i = 0, 1, 2, …, which satisfies the following requirements: a0  ...

  9. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

随机推荐

  1. spring-boot 更换依赖版本

    创建Spring Boot操作步骤如下: 在File菜单里面选择 New > Project,然后选择Spring Initializr 更换版本 或 pom spring-boot-start ...

  2. 【Git】git clone与git pull区别

    从字面意思也可以理解,都是往下拉代码,git clone是克隆,git pull 是拉.但是,也有区别: 从远程服务器克隆一个一模一样的版本库到本地,复制的是整个版本库,叫做clone.(clone是 ...

  3. 免杀后门(四)之shellter注入绕过

    文中提及的部分技术可能带有一定攻击性,仅供安全学习和教学用途,禁止非法使用 Shellter 是一款动态 shellcode 注入工具.利用它,我们可以将shell注入到其他的可执行程序上,从而躲避安 ...

  4. flask插件系列之SQLAlchemy实用技巧

    下面记录一下SQLAlchemy使用的技巧. 在多模块下定义models 如果由多个蓝图下读定义了model模块,在初始化的时候需要加载到上下文中. 当使用flask_Migrate迁移数据库的时候, ...

  5. C++ 内联函数inline

    http://blog.csdn.net/u011327981/article/details/50601800 1.  内联函数 在C++中我们通常定义以下函数来求两个整数的最大值: 复制代码 代码 ...

  6. redis的备份恢复

    说明:默认rdb方式保存,redis支持主从和哨兵等,但是在某些情况下我们会单机跑,所以有时候我们就会需要设计到备份恢复 环境:原始redis:192.168.1.200 新redis:192.168 ...

  7. Ubuntu16.04安装记

    Ubuntu16.04安装记 基本信息: 华硕笔记本 Windows 10 家庭版 处理器:Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz 2.71GHz 已安装的内 ...

  8. openjudge-NOI 2.6-2985 数字组合

    题目链接:http://noi.openjudge.cn/ch0206/2985/ 题解: 跟背包问题有点相似,暂且算背包型DP吧,虽然是一道递推题…… fj表示和为j时的结果,得: 即为j减去每一个 ...

  9. 转:google测试分享-GTA

    原文: http://blog.sina.com.cn/s/blog_6cf812be0102viuh.html 上一次分享了google测试分享-分层测试,有很多自动化测试的策略和实施都要有一个重点 ...

  10. Codeforces 918C The Monster(括号匹配+思维)

    题目链接:http://codeforces.com/contest/918/problem/C 题目大意:给你一串字符串,其中有'('.')'.'?'三种字符'?'可以当成'('或者')'来用,问该 ...