记录编号 447833 评测结果 AAAAAAAAAA
题目名称 [NOIP 2007]字符串的展开 最终得分 100
用户昵称 Gravatarliuyu 是否通过 通过
代码语言 C++ 运行时间 0.005 s
提交时间 2017-09-11 16:47:57 内存使用 0.32 MiB
显示代码纯文本
  1. #include<cstdio>
  2. #include<cstring>
  3. #include<iostream>
  4. #include<algorithm>
  5. #include<queue>
  6. using namespace std;
  7. int main()
  8. {
  9. freopen("expand.in","r",stdin);
  10. freopen("expand.out","w",stdout);
  11. int p1,p2,p3,z,i,j;
  12. string s;
  13. cin>>p1>>p2>>p3;
  14. cin>>s;
  15. int l = s.size();
  16. for(z=0;z<l;z++){
  17. if(s[z]!='-'){
  18. cout<<s[z];
  19. continue;
  20. }
  21. if((s[z]=='-')&&(z==0 || z==l-1 )){
  22. cout<<'-';
  23. continue;
  24. }
  25. if( ((s[z-1]>='0'&&s[z-1]<='9'&&s[z+1]>='0'&&s[z+1]<='9'&&s[z-1]>=s[z+1])
  26. ||(s[z-1]>='a'&&s[z-1]<='z'&&s[z+1]>='a'&&s[z+1]<='z'&&s[z-1]>=s[z+1])
  27. ||(s[z-1]>='0'&&s[z-1]<='9'&&s[z+1]>='a'&&s[z+1]<='z')
  28. ||(s[z-1]>='a'&&s[z-1]<='z'&&s[z+1]>='0'&&s[z+1]<='9'))
  29. ||(s[z-1]=='-')
  30. ||(s[z+1]=='-')){
  31. cout<<'-';
  32. continue;
  33. }
  34. if( (s[z-1]>='0')&&(s[z-1]<='9')&&(s[z+1]>='0')&&(s[z+1]<='9') ){
  35. if(p1==3){
  36. for(i=s[z-1]+1;i<=s[z+1]-1;i++)
  37. for(j=1;j<=p2;j++)
  38. cout<<'*';
  39. continue;
  40. }
  41. if(p3==1){
  42. for(i=s[z-1]+1;i<=s[z+1]-1;i++)
  43. for(j=1;j<=p2;j++)
  44. cout<<(char)(i);
  45. continue;
  46. }
  47. for(i=s[z+1]-1;i>=s[z-1]+1;i--)
  48. for(j=1;j<=p2;j++)
  49. cout<<(char)(i);
  50. }
  51. if( (s[z-1]>='a')&&(s[z-1]<='z')&&(s[z+1]>='a')&&(s[z+1]<='z') ){
  52. if(p1==3){
  53. for(i=s[z-1]+1;i<=s[z+1]-1;i++)
  54. for(j=1;j<=p2;j++)
  55. cout<<'*';
  56. continue;}
  57. if(p1==1){
  58. if(p3==1){
  59. for(i=s[z-1]+1;i<=s[z+1]-1;i++)
  60. for(j=1;j<=p2;j++)
  61. cout<<(char)(i);
  62. continue;}
  63. for(i=s[z+1]-1;i>=s[z-1]+1;i--)
  64. for(j=1;j<=p2;j++)
  65. cout<<(char)(i);
  66. continue;
  67. }
  68. if(p3==1){
  69. for(i=s[z-1]+1;i<=s[z+1]-1;i++)
  70. for(j=1;j<=p2;j++)
  71. cout<<(char)(i-32);
  72. continue;}
  73. for(i=s[z+1]-1;i>=s[z-1]+1;i--)
  74. for(j=1;j<=p2;j++)
  75. cout<<(char)(i-32);
  76. continue;
  77. }
  78. }
  79. return 0;
  80. }