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. oracle sqlplus操作

    步骤: su - oracle 切换到oracle用户 sqlplus /nolog 进入sqlplus命令行 conn cps/cps 连接到cps用户的数据库,cps/cps表示:用户/密码 执行 ...

  2. 抽屉效果几大github第三方库

    首先感谢董铂然博客园,鄙人收藏学习之用,如有朋友看到.有需要请直接前往董铂然博客园本文, 请点击查看原文 在公司项目新版本方案选择中,对主导航中要使用的抽屉效果进行了调研.主要原因是旧的项目中所用的库 ...

  3. redis的五种存储类型的具体用法

    String 类型操作 string是redis最基本的类型,而且string类型是二进制安全的.意思是redis的string可以包含任何数据.比如jpg图片或者序列化的对象 $redis-> ...

  4. QT学习之路(1):彩票绝对不中模拟器

    //============================================//绝对不中,彩票开奖模拟器#include "mainwindow.h"#includ ...

  5. Pycharm的常用快捷将

    程序运行 Shift+alt+F10 执行程序 debug调试 Shift+alt+F9 Debug调试Shift + F9 对当前文件进行DebugF8 调试模式下 跳过F7 调试模式下 进入F9 ...

  6. IOS初级:UITableView

    先来看一下tableview 的结构(plain style). --------------------------------------       + header               ...

  7. python使用Fabric模块实现自动化运维

    简介:Fabric是基于Python实现的SSH命令行工具,简化了SSH的应用程序部署及系统管理任务,它提供了系统基础的操作组件,可以实现本地或远程shell命令,包括:命令执行.文件上传.下载及完整 ...

  8. 鲍姆-韦尔奇算法求解HMM参数

    1. HMM模型参数求解概述 HMM模型参数求解根据已知的条件可以分为两种情况. 第一种情况较为简单,就是我们已知DD个长度为TT的观测序列和对应的隐藏状态序列,即{(O1,I1),(O2,I2),. ...

  9. 2019.01.10 bzoj1095: [ZJOI2007]Hide 捉迷藏(动态点分治)

    传送门 蒟蒻真正意义上做的第一道动态点分治! 题意:给一棵最开始所有点都是黑点的树,支持把点的颜色变成从黑/白色变成白/黑色,问当前状态树上两个最远黑点的距离. 思路: 首先考虑不带修改一次点分治怎么 ...

  10. 2018.10.24 NOIP模拟 小 C 的数组(二分+dp)

    传送门 考试自己yyyyyy的乱搞的没过大样例二分+dp二分+dp二分+dp过了606060把我自己都吓到了! 这么说来乱搞跟被卡常的正解比只少101010分? 那我考场不打其他暴力想正解血亏啊. 正 ...