http://vjudge.net/contest/view.action?cid=51327#problem/D

Description

Yoda: May the Force be with you.
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

input
(We) [are] {blind}, if (we) [could not see] {creation of this clone army}
output
Blind we are, if creation of this clone army we could not see
input
{Truly wonderful} (the mind of a child) [is]
output
Truly wonderful the mind of a child is
#include <iostream>
#include <cstring>
#include <cstdio> using namespace std; char str[];
char ob[],sub[],veb[];
int o,sb,ve;
int i,j;
int len,star; int main()
{
while(gets(str))
{
star=;
o=sb=ve=;
len=strlen(str);
for(i=;i<len;i++)
{
if(str[i]=='(')
{
i++;
while(i<len&&str[i]!=')')
{
sub[sb++]=str[i++];
}
} else if(str[i]=='{')
{
i++;
while(i<len&&str[i]!='}')
{
ob[o++]=str[i++];
}
}
else if(str[i]=='[')
{
i++;
while(i<len&&str[i]!=']')
{
veb[ve++]=str[i++];
}
}
else
{
if(str[i]==',')
{
for(j=;j<o;j++)
{
if(star)
{
if(ob[]>='a'&&ob[]<='z')
{
putchar(ob[]-);
}
else putchar(ob[]);
star=;
continue;
}
putchar(ob[j]);
}
putchar(' ');
o=;
for(j=;j<sb;j++)
{
if(j==&&sub[]<='Z'&&sub[]>='A')
putchar(sub[j]+);
else putchar(sub[j]);
}
putchar(' ');
sb=;
for(j=;j<ve;j++)
{
if(j==&&veb[]<='Z'&&veb[]>='A')
putchar(veb[j]+);
else putchar(veb[j]);
}
ve=;
putchar(',');
i++;
while(str[i]!='{'&&str[i]!='('&&str[i]!='[')
{
if(i<len){
putchar(str[i]);
i++;
}
else
{
break;
}
}
i--;
}
}
}
if(o||sb||ve)
{
for(j=;j<o;j++)
{
if(star)
{
if(ob[]>='a'&&ob[]<='z')
{
putchar(ob[]-);
}
else putchar(ob[]);
star=;
continue;
}
putchar(ob[j]);
}
putchar(' ');
for(j=;j<sb;j++)
{
if(j==&&sub[]<='Z'&&sub[]>='A')
putchar(sub[j]+);
else putchar(sub[j]);
}
putchar(' ');
for(j=;j<ve;j++)
{
if(j==&&veb[]<='Z'&&veb[]>='A')
putchar(veb[j]+);
else putchar(veb[j]);
}
}
putchar('\n');
}
return ;
}

putchar();  字符输出  与cout没有其他差别

eg:putchar('a'-32)==A

cout<<'a'-32<<endl;  ==65

The Great Pan

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 1003    Accepted Submission(s): 352

Problem Description
As a programming contest addict, Waybl is always happy to take part
in various competitive programming contests. One day, he was competing
at a regional contest of Inventing Crappy Problems Contest(ICPC). He
tried really hard to solve a "geometry" task without success.

After the contest, he found that the problem statement is ambiguous! He
immediately complained to jury. But problem setter, the Great Pan, told
him "There are only four possibilities, why don't you just try all of
them and get Accepted?".

Waybl was really shocked. It is the
first time he learned that enumerating problem statement is as useful as
trying to solve some ternary search problem by enumerating a subset of
possible angle!

Three years later, while chatting with Ceybl,
Waybl was told that some problem "setters" (yeah, other than the Great
Pan) could even change the whole problem 30 minutes before the contest
end! He was again shocked.

Now, for a given problem statement, Waybl wants to know how many ways there are to understand it.

A problem statement contains only newlines and printable ASCII
characters (32 ≤ their ASCII code ≤ 127) except '{', '}', '|' and '$'.

Waybl has already marked all ambiguity in the following two formats:

1.{A|B|C|D|...} indicates this part could be understand as A or B or C or D or ....
2.$blah blah$ indicates this part is printed in proportional fonts,
it is impossible to determine how many space characters there are.

Note that A, B, C, D won't be duplicate, but could be empty. (indicate evil problem setters addedclarified it later.)

Also note that N consecutive spaces lead to N+1 different ways of understanding, not 2N ways.

It is impossible to escape from "$$" and "{}" markups even with
newlines. There won't be nested markups, i.e. something like "${A|B}$"
or "{$A$|B}" or "{{A|B}|C}" is prohibited. All markups will be properly
matched.

 
Input
Input contains several test cases, please process till EOF.
For each test case, the first line contains an integer n, indicating
the line count of this statement. Next n lines is the problem statement.
1 ≤ n ≤ 1000, size of the input file will not exceed 1024KB.
 
Output
For each test case print the number of ways to understand this statement, or "doge" if your answer is more than 105.
 
Sample Input
9
I'll shoot the magic arrow several
times on the ground, and of course
the arrow will leave some holes
on the ground. When you connect
three holes with three line segments,
you may get a triangle.
{|It is hole! Common sense!|
No Response, Read Problem
Statement|don't you know what a triangle is?}
1
Case $1: = >$
5
$/*This is my code printed in
proportional font, isn't it cool?*/
printf("Definitely it is cooooooool \
%d\n",4 * 4 * 4 * 4 * 4 * 4 * 4 * 4 * 4
* 4 * 4 * 4 * 4 * 4 * 4 * 4 * 4 * 4);$
2
$Two space$ and {blue|
red} color!
 
Sample Output
4
4
doge
6
 
 
#include<iostream>
#include<iomanip>
#include<cstdio>
#include<cstring> using namespace std;
#define LL long long char str1[];
char str[]; int main()
{
int n;
while(scanf("%d",&n) != EOF)
{
memset(str,'/0',sizeof(str));
LL ans = ;
LL tans=;
int len = ;
getchar();
for(int i = ; i <= n; i ++)
{
gets(str1);
int len1 = strlen(str1);
for(int j = ; j < len1 ; j++)
str[j+len] = str1[j];
len = len + len1;
} int is = ;
int t = ;
int ok = ; for(int i = ; i < len ; i ++)
{
if(ok == )
break;
if(is)
{
if(str[i] == ' ')
{
t++;
if(str[i+] != ' ')
{
tans *=(t+);
t = ;
}
}
else if(str[i] == '$')
{
is = ;
ans = tans * ans;
tans = ;
}
if(tans > )
{
ok = ;
}
}
else
{
if(str[i] == '{')
{
int t = ;
int j ;
for(j = i +; ; j ++)
{
if(str[j] == '}')
break;
if(str[j] == '|')
t ++ ;
}
i = j;
ans *= t ;
if(ans > )
{
ok = ;
}
}
else
{
if(str[i] == '$')
is = ;
}
}
}
if(ok )
printf("doge\n");
else
printf("%I64d\n",ans);
}
return ;
}

走上模拟道路 HDU4891的更多相关文章

  1. 是什么让我走上Java之路?

    选择方向,很多人都为根据自己的兴趣爱好和自己的能力所长而作出选择.那么是什么让我走上Java之路? 整个高三我有两门课程没有听过课,一门是数学,一门是物理.当时候物理没有听课的原因很简单,我有一本&l ...

  2. Windows上模拟Linux环境的软件Cygwin

    Windows上模拟Linux环境的软件Cygwin 2010-10-11 15:19      我要评论(0) 字号:T|T Cygwin是一个用于在Windows上 模拟Linux环境的软件.它可 ...

  3. 【文学文娱】《屌丝逆袭》-出任CEO、迎娶白富美、走上人生巅峰

    本文地址:http://www.cnblogs.com/aiweixiao/p/7759790.html 原文地址:(微信公众号) 原创 2017-10-30 微信号wozhuzaisi 程序员的文娱 ...

  4. delphi 在桌面屏幕上模拟鼠标单击

    delphi 在桌面屏幕上模拟鼠标单击 procedure TFrmUnicom.Button1Click(Sender: TObject); var oldPoint, newPoint: TPoi ...

  5. 数据库最佳实践:DBA小马如何走上升值加薪之路?

    DBA可能是互联网公司里面熬夜最多,背锅最多的岗位之一,腾讯云数据库团队的同学结合自身的成长经历,用漫画的形式为我们分享了一位DBA是如何从菜鸟成长为大神,走上升职加薪,迎娶白富美之路的. 此文已由作 ...

  6. 神户制钢坑了500家企业 百年老店为何走上邪路?(企业经营再艰难,也不能降低产品质量,甚至偷工减料,同样适用于IT行业)

    神户制钢这颗烂萝卜,拔出它之后带出的泥越来越多.上周五社长川崎博也又开了记者会,再次道歉,而受到其数据造假影响的客户数量也从200家飙升到500家. 日本政府给神户制钢两周时间调查,还要在一个月内公布 ...

  7. PUToast - 使用PopupWindow在Presentation上模拟Toast

    PUToast Android10 (API 29) 之前 Toast 组件默认只能展示在主 Display 上,PUToast 通过构造一个 PopupWindoww 在 Presentation ...

  8. 运用Mono.Ceci类库修改.NET程序集 走上破解软件的道路

    代码注入在C++时代很流行,主要是对现有的程序做一些修改,以达到预期的目的.一部分的破解程序,注册机也是借助于此方法,让被注入的程序绕过验证,达到破解的目录.在.NET中,借助于Mono.Cecil程 ...

  9. python 之走坑的道路

    ### python之 继续走函数的坑 上篇文章简单介绍了函数的一些简单的使用,这次继续踩函数的坑1.函数对象 函数其实也可以当做一个参数传给另一个函数,也可以使用赋值的方式来给另一个,而且这两个的内 ...

随机推荐

  1. BZOJ1217或洛谷2279 [HNOI2003]消防局的设立

    BZOJ原题链接 洛谷原题链接 该题有两种做法,树形\(DP\)和贪心. 先讲贪心. 先将所有点按深度从大到小排序,然后从大到小依次取出点,若已经被覆盖则跳过,否则就在它的祖父点建立消防站. 考虑如何 ...

  2. Servlet会话管理三(HttpSession)

    Session是服务器端技术,服务器在运行时可以为每一个用户的浏览器创建一个其独享的HttpSession对象.由于Session为浏览器用户所独享,所以用户在访问服务器的web资源时,可以把各自的数 ...

  3. Internet

    0x01 URL的解析/反解析/连接 解析 urlparse()--分解URL # -*- coding: UTF-8 -*- from urlparse import urlparse url = ...

  4. python Trie树和双数组TRIE树的实现. 拥有3个功能:插入,删除,给前缀智能找到所有能匹配的单词

    #coding=utf- #字典嵌套牛逼,别人写的,这样每一层非常多的东西,搜索就快了,树高26.所以整体搜索一个不关多大的单词表 #还是O(). ''' Python 字典 setdefault() ...

  5. python之排列组合测试

    # test permutations and combinations import itertools as it for i in it.combinations('abcd',2): prin ...

  6. 一个机器上运行两个tomcat

    一.   在一台计算机上配置2个tomcat是可以的,关键是tomcat里的server.xml文件中三个端口必须不同.需要修改conf/server.xml使两个tomcat占用的端口不相同,在缺省 ...

  7. 【Go】 Go 语言环境安装

    安装环境/工具 1.Linux(CentOS 7.4版) 2.go1.11.2.linux-amd64.tar Go 语言环境安装 1.下载安装包 安装包下载地址为:https://golang.or ...

  8. python中将两个数组压缩成一个数组

    我们有时候会遇到一个问题将两个数组一一对应的压缩起来: 两个都是字符串: 列表解析[''.join(i) for i in zip(list_1, list_2)] map(lambda x,y:x+ ...

  9. 42.OC中instancetype与id的区别

    区别: 在ARC(Auto Reference Count)环境下: instancetype用来在编译期确定实例的类型,而使用id的话,编译器不检查类型,运行时检查类型 在MRC(Manual Re ...

  10. js文件中获取${pageContext.request.contextPath}

    一般从 JSP文件中,可以直接使用 ${pageContext.request.contextPath}非常方便的获得当前页面的路径,用来处理被 Apache2代理之后出现 URL变化的问题,比如增加 ...