[JLOI2008]提示问题
题目描述
最近在JLOI网上的一个流行游戏中,选手要回答很难的问题。假如在规定时间内不能回答,系统将给出1个提示,之后再依次给出第2,3个提示。出现在答案中的是字母和下列字符:
'.',',',':',';','!','?','-'和空格(空格不会在开头和结尾出现)
字母是指:小写字母'a'...'z' 大写字母 'A'...'Z',其中aeiouAEIOU是元音字母。
生成提示的规则:
第1个提示:简单的将所有字母换成'.'即可;
第2个提示:从第1个提示而来,将所有字母的个数求出,再将总个数除以三,得到的最接近商的自然数N,将第1个提示中的前N个字母显示;
第3个提示:从第2个提示而来,将剩下的元音字母显示。假如没有可显示的元音字母,则从第1个提示而来,即我们将前2/3的字母显示(同样如不能被3整除则取最接近的整数)。
输入输出格式
输入格式:
仅一行,给出问题,问题字符数最多不超过50
输出格式:
三行:按规则输出的三行提示
输入输出样例
思路
模拟;
代码
#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int n,m,l,r,ok;
char ch[]; int main(){
gets(ch);
l=strlen(ch);
for(int i=;i<l;i++){
if(isalpha(ch[i])) putchar('.'),m++;
else putchar(ch[i]);
} putchar('\n'); n=round(m/3.0);
for(int i=,j=;i<l;i++){
if(isalpha(ch[i])){
if(j<n) putchar(ch[i]),j++,r=i;
else{
if(ch[i]=='a'||ch[i]=='A'||ch[i]=='e'||ch[i]=='E'||ch[i]=='i'||ch[i]=='I'||ch[i]=='o'||ch[i]=='O'||ch[i]=='u'||ch[i]=='U') ok++;
putchar('.');
}
}
else putchar(ch[i]);
} putchar('\n'); if(ok){
for(int i=,j=;i<l;i++){
if(isalpha(ch[i])){
if(j<n) putchar(ch[i]);
else{
if(ch[i]=='a'||ch[i]=='A'||ch[i]=='e'||ch[i]=='E'||ch[i]=='i'||ch[i]=='I'||ch[i]=='o'||ch[i]=='O'||ch[i]=='u'||ch[i]=='U') putchar(ch[i]);
else putchar('.');
}
j++;
}
else putchar(ch[i]);
}
}
else{
n=round(m*2.0/3.0);
for(int i=,j=;i<l;i++){
if(isalpha(ch[i])){
if(j<n) putchar(ch[i]),j++;
else putchar('.');
}
else putchar(ch[i]);
}
} putchar('\n'); return ;
}
[JLOI2008]提示问题的更多相关文章
- LuoguP3880 [JLOI2008]提示问题 题解
Content 由于题目要求是在太过复杂,请见原题面查看. Solution 这题明显是一个大模拟,那么废话少说,我们开始吧. 首先就是要找到所有的字母,比如说样例,其中底下加了^ 号的就是所有字母的 ...
- iPhone Anywehre虚拟定位提示“后台服务未启动,请重新安装应用后使用”的解决方法
问题描述: iPhone越狱了,之后在Cydia中安装Anywhere虚拟定位,但是打开app提示:后台服务未启动,请重新安装应用后使用. 程序无法正常使用... 解决方法: 打开Cydia-已安装, ...
- jsp中出现onclick函数提示Cannot return from outside a function or method
在使用Myeclipse10部署完项目后,原先不出错的项目,会有红色的叉叉,JSP页面会提示onclick函数错误 Cannot return from outside a function or m ...
- 【SQLServer】【恢复挂起的解决方案】附加文件时候的提示“无法重新生成日志,原因是数据库关闭时存在打开的事务/用户,该数据库没有检查点或者该数据库是只读的。 ”【数据库恢复】
汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 先贴错误: 吐槽一下: 进入正题: 新建一个同名数据库 停止MSSQL服务 替换数据库文 ...
- SQLServer执行命令出现“目录无效的提示”
异常处理汇总-数据库系列 http://www.cnblogs.com/dunitian/p/4522990.html 一般都是清理垃圾清理过头了,把不该删的目录删了 网上说法: 问题描述: 1.s ...
- 利用CSS中的:after、: before制作的边三角提示框
小颖昨天分享了一篇参考bootstrap中的popover.js的css画消息弹框今天给大家再分享一篇使用:before和:after伪元素画消息弹框的CSS. 画出来是介个酱紫的: 有没有觉得画的萌 ...
- TypeScript Vs2013 下提示Can not compile modules unless '--module' flag is provided
VS在开发TypeScript程序时候,如果import了模块有的时候会有如下提示: 这种情况下,只需要对当前TypeScript项目生成设置为AMD规范即可!
- 当web.config文件放置在共享目录下(UNC),启动IIS会提示有错误信息500.19,伴随有错误代码0x80070003和错误代码0x80070005的解决办法
最近遇到一个很有意思的使用环境,操作人员将所有的网站应用内容投放到共享存储里面,并且使用微软的SMB协议将其以CIFS的方式共享出来,使用Windows Server 2008 R2的IIS将其连接起 ...
- HTML5轻松实现搜索框提示文字点击消失---及placeholder颜色的设置
在做搜索框的时候无意间发现html5的input里有个placeholder属性能轻松实现提示文字点击消失功能,之前还傻傻的在用js来实现类似功能... 示例 <form action=&quo ...
随机推荐
- Sql Server把本地数据库传到服务器数据库
上一篇文章我们已经把网站布署到服务器中了,如果是动态网站肯定是有数据库的,接下来通过Sql Server把本地数据库上传到服务器数据库中. 打开Sql Server连接本地数据库,选中要导出的数据库, ...
- IIS ARR设置HTTP跳转到HTTPS
GUI Version - Select the website you wish to configure- In the “Features View” panel, double click U ...
- iOS游戏开发之UIDynamic
iOS游戏开发之UIDynamic 简介 什么是UIDynamic UIDynamic是从iOS 7开始引入的一种新技术,隶属于UIKit框架 可以认为是一种物理引擎,能模拟和仿真现实生活中的物理现象 ...
- 在JAVA中封装JSONUtils工具类及使用 (转)
import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util. ...
- 什么是混合app开发
webApp 移动app 就是在浏览器中运行的web应用 (网页应用)开发成本低 体验差 不需要安装 NativeApp :用Android和object-C原生语言开发的应用 开发成本高 需要安装( ...
- Android(java)学习笔记199:JNI之JNI概念
1. JNI是什么? java native interface (java本机接口) 比如方法声明: public final native Class<?> getClass(): ...
- CAD参数绘制多行文字(网页版)
在CAD设计时,需要绘制多行文字,用户可以设置设置绘制文字的高度等属性. 主要用到函数说明: _DMxDrawX::DrawMText 绘制一个多行文字.详细说明如下: 参数 说明 DOUBLE dP ...
- IDEA常见问题
IDEA常见问提解决 一:拉取git代码认证失败(无法重新输入账户和密码) git config --system --unset credential.helper 二:取消新建文件自动添加到S ...
- anchor_target_layer中的bounding regression
在anchor_target层,这两行是计算bounding regression代码: bbox_targets = np.zeros((len(inds_inside), 4), dtype=np ...
- MFC如何设置窗口最前
首先,放到最前 this->SetWindowPos(&wndTopMost,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);//使窗口总是在最前面 this->Se ...