UVA之10361 - Automatic Poetry

Problem I

Automatic Poetry

Input: standard input

Output: standard output

Time Limit: 2 seconds

Memory Limit: 32 MB

“Oh God”, Lara Croft exclaims, “it’s one of these dumb riddles again!”

In Tomb Raider XIV, Lara is, as ever, gunning her way through ancient Egyptian pyramids, prehistoric caves and medival hallways. Now she is standing in front of some important Germanic looking doorway and has to solve a linguistic riddle to pass. As usual,
the riddle is not very intellectually challenging.

This time, the riddle involves poems containing a “Schuttelreim”. An example of a Schuttelreim is the following short poem:

Ein Kind halt seinen Schnabel nur,

wenn es hangt an der Nabelschnur.

/*German contestants please forgive me. I had to modify something as they were not appearing correctly in plain text format*/

A Schuttelreim seems to be a typical German invention. The funny thing about this strange type of poetry is that if somebody gives you the first line and the beginning of the second one, you can complete the poem yourself. Well, even a computer can do that,
and your task is to write a program which completes them automatically. This will help Lara concentrate on the “action” part of Tomb Raider and not on the “intellectual” part.

Input

The input will begin with a line containing a single number n. After this line follow n pairs of lines containing Schuttelreims. The first line of each pair will be of the form

s1<s2>s3<s4>s5

where the si are possibly empty, strings of lowercase characters or blanks. The second line will be a string of lowercase characters or blanks ending with three dots “...”. Lines will we at most 100 characters long.

Output

For each pair of Schuttelreim lines l1 and l2 you are to output two lines c1 and c2 in the following way: c1 is the same as l1 only
that the bracket marks “<” and “>” are removed. Line c2 is the same as l2 , except that instead of the three dots the string s4s3s2s5 should appear.

Sample Input

3

ein kind haelt seinen <schn>abel <n>ur

wenn es haengt an der ...

weil wir zu spaet zur <>oma <k>amen

verpassten wir das ...

<d>u <b>ist

...

Sample Output

ein kind haelt seinen schnabel nur

wenn es haengt an der nabel schnur

weil wir zu spaet zur oma kamen

verpassten wir das koma amen

du bist

bu dist


TUD Programming Contest

【题意】:

输入:

输入N组测试用例,每组输入两个字符串。

第一个字符串格式:s1<s2>s3<s4>s5

s1,s2,s3,s3,s4,s5都可以为空或者不存在或者全是小写字符

第二个字符串格式:s ....

输出:

每组测试用例输出两个字符串。

第一个字符串格式:s1s2s3s4s5

第二个字符串格式:ss4s3s2s5

【代码】:

[cpp] view
plain
copy

  1. /*********************************
  2. *   日期:2013-4-26
  3. *   作者:SJF0115
  4. *   题号: 题目10361 - Automatic Poetry
  5. *   来源:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=15&page=show_problem&problem=1302
  6. *   结果:AC
  7. *   来源:UVA
  8. *   总结:
  9. **********************************/
  10. #include<stdio.h>
  11. #include<string.h>
  12. #define N 110
  13. int main (){
  14. int i,j,Case,lena,lenb;
  15. char a[N],b[N],s[N],s1[N],s2[N],s3[N],s4[N],s5[N];
  16. //freopen("C:\\Users\\XIAOSI\\Desktop\\acm.txt","r",stdin);
  17. while(scanf("%d\n",&Case) != EOF){
  18. while(Case--){
  19. gets(a);
  20. gets(b);
  21. lena = strlen(a);
  22. //第一个子串
  23. for(j = 0,i = 0;a[i] != ‘<‘;i++,j++){
  24. s1[j] = a[i];
  25. }
  26. s1[j] = ‘\0‘;
  27. //printf("%s\n",s1);
  28. //第二个子串
  29. for(i = i+1,j = 0;a[i] != ‘>‘;i++,j++){
  30. s2[j] = a[i];
  31. }
  32. s2[j] = ‘\0‘;
  33. //printf("%s\n",s2);
  34. //第三个子串
  35. for(i = i+1,j = 0;a[i] != ‘<‘;i++,j++){
  36. s3[j] = a[i];
  37. }
  38. s3[j] = ‘\0‘;
  39. //printf("%s\n",s3);
  40. //第四个子串
  41. for(i = i+1,j = 0;a[i] != ‘>‘;i++,j++){
  42. s4[j] = a[i];
  43. }
  44. s4[j] = ‘\0‘;
  45. //printf("%s\n",s4);
  46. //第五个子串
  47. for(i = i+1,j = 0;i < lena;i++,j++){
  48. s5[j] = a[i];
  49. }
  50. s5[j] = ‘\0‘;
  51. //printf("%s\n",s5);
  52. //第二个字符串
  53. for(i = 0,j = 0;b[i] != ‘.‘;i++,j++){
  54. s[j] = b[i];
  55. }
  56. s[j] = ‘\0‘;
  57. //printf("%s\n",s);
  58. //输出
  59. printf("%s%s%s%s%s\n",s1,s2,s3,s4,s5);
  60. printf("%s%s%s%s%s\n",s,s4,s3,s2,s5);
  61. }
  62. }
  63. return 0;
  64. }

[cpp] view
plain
copy

  1. #include<iostream>
  2. #include<string>
  3. using namespace std;
  4. #define MAXN 102
  5. string a1, a2;
  6. void solve()
  7. {
  8. int p1 = a1.find(‘<‘, 0);
  9. int p2 = a1.find(‘>‘, 0);
  10. int p3 = a1.find(‘<‘, p2+1);
  11. int p4 = a1.find(‘>‘, p2+1);
  12. string s1 = a1.substr(0, p1);
  13. string s2 = a1.substr(p1+1, p2-p1-1);
  14. string s3 = a1.substr(p2+1, p3-p2-1);
  15. string s4 = a1.substr(p3+1, p4-p3-1);
  16. string s5 = a1.substr(p4+1);
  17. cout<<s1<<s2<<s3<<s4<<s5<<endl;
  18. a2.replace(a2.length()-3, 3, s4+s3+s2+s5);
  19. cout<<a2<<endl;
  20. }
  21. int main()
  22. {
  23. int t;  cin>>t;
  24. cin.get();
  25. while(t--)
  26. {
  27. getline(cin, a1);
  28. getline(cin, a2);
  29. solve();
  30. }
  31. }

UVA之10361 - Automatic Poetry,布布扣,bubuko.com

时间: 2024-10-13 02:17:24

UVA之10361 - Automatic Poetry的相关文章

UVa 10361 Automatic Poetry

Automatic Poetry Input: standard input Output: standard output Time Limit: 2 seconds Memory Limit: 32 MB “Oh God”, Lara Croft exclaims, “it’s one of these dumb riddles again!” In Tomb Raider XIV, Lara is, as ever, gunning her way through ancient Egyp

10361 - Automatic Poetry

#include<iostream> #include<cctype> #include<cstring> #include<algorithm> using namespace std; char str1[105],str2[105]; string s2,s4; int main(){ int n; cin >> n; getchar(); while(n--){ gets(str1); gets(str2); s2 = "&qu

小白书训练-Automatic Poetry

题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1302 题意:就是用<和>吧一句话截断为5部分,然后先打印s1s2s3s4s5,然后再输入一句话,然后在打印这句话(去除'.'),然后打印s4s3s2s5.其实就是个模拟,没有难度,就是英语有点问题,用指针分分钟的事情. 代码: #include <iostream

UVA题目分类

题目 Volume 0. Getting Started 开始10055 - Hashmat the Brave Warrior 10071 - Back to High School Physics 10300 - Ecological Premium 458 - The Decoder 494 - Kindergarten Counting Game 414 - Machined Surfaces 490 - Rotating Sentences 445 - Marvelous Mazes

UVA 10361-Automatic Poetry(模拟)

Automatic Poetry Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submit Status Description Problem I Automatic Poetry Input: standard input Output: standard output Time Limit: 2 seconds Memory Limit: 32 MB "Oh God", La

UVA10361 -自动作诗机

UVA10361 - Automatic Poetry(自动作诗机) A Schuttelreim seems to be a typical German invention. The funny thing about this strange type of poetry is that if somebody gives you the first line and the beginning of the second one, you can complete the poem yo

Automatic Editing UVA 10115

#include <stdio.h> #include <string.h> #define MAXL 225+5 #define MAXN 10+5 char find[MAXN][MAXL],replace[MAXN][MAXL]; char text[MAXL],convert[MAXL]; int Find(int,int*); void Replace(int,int); int str_cmp(int,int); int main(){ int N,i,j,k; int

UVa 10115 - Automatic Editing

题目:给你一些字符串的替换关系,以及一个句子.按顺序替换,输出最后结果. 分析:字符串.按照替换顺序依次替换(这个替换用过之后,就不再使用),每个替换可能出现多次. 这里注意,如果当前串中有多个可被当前单词替换的位置,只替换最前面的那个, 下次用本次生成的串替换,而不是整体一次性替换. 说明:注意数据清空. #include <iostream> #include <cstdlib> #include <cstring> #include <cstdio>

UVA 10115 Automatic Editing(字符处理)

Text-processing tools like awk and sed allow you to automatically perform a sequence of editing operations based on a script. For this problem we consider the specific case in which we want to perform a series of string replacements, within a single