codechef T1 What's int the name
NITIKA: 姓名本无意
题目描述 Nitika 读了一本历史书,想要理清其中的人物关系。因此她要她的哥哥把书中出现的历史人 物全部列出来。哥哥把列好的人名给了 Nitika,但 Nitika 非常不满意,因为哥哥列出的这些人名 格式非常不规范。处于强迫症,Nitika 决定自己来整理这些人名。 一个名字最多有三个部分:姓、名,和中间名,按照名、中间名、姓的顺序排列;最少也有姓 这一个部分。Nitika 决定把人名写成下面的格式: • 只有每个部分的首字母是大写; • 除了姓之外,每个部分用其大写首字母加一个‘.’表示。 比如,按这个规则对一些名字进行改写: • gandhi −→ Gandhi • mahatma gandhI −→ M. Gandhi • Mohndas KaramChand gandhi −→ M. K. Gandhi 输入格式
输入的第一行包含一个整数 T,代表测试数据的组数。接下来是 T 组数据。 每组数据仅有一行,包含一个人名。名字的不同部分之间用空格隔开。
输出格式
对于每组数据,输出一行,包含改写后的人名。
数据范围和子任务 • 1 ≤ T ≤ 100 • 2 ≤名字每个部分的长度≤ 10 子任务 1(40 分): • 所有姓名仅有一个部分
子任务 2(60 分): • 无附加限制
样例数据
输入
3
gandhi
mahatma gandhI
Mohndas KaramChand gandhi
输出
Gandhi
M. Gandhi
M. K. Gandhi
归结起来这就是道简单的字符串题目 代码不过才四十行
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int T,cnt1,cnt2,cnt3;
char s1[],s2[],s3[];
bool pd(char c){return (c>='a'&&c<='z')||(c>='A'&&c<='Z');}
int read(char s[],int& cnt){
char c=getchar();
while(!pd(c)) c=getchar();
while(pd(c)) s[cnt++]=c,c=getchar();
if(c=='\n') return ;
return ;
}
char pd1(char c){
if(c>='a'&&c<='z') return c-'a'+'A';
return c;
}
char pd2(char c){
if(c>='A'&&c<='Z') return c-'A'+'a';
return c;
}
void pf(char s[],int len){
printf("%c",pd1(s[]));
for(int i=;i<len;i++) printf("%c",pd2(s[i]));
printf("\n");
}
int main()
{
scanf("%d",&T);
while(T--){
cnt1=; cnt2=; cnt3=;
int f=read(s1,cnt1);
if(!f) {pf(s1,cnt1); continue;}
else printf("%c. ",pd1(s1[]));
f=read(s2,cnt2);
if(!f) {pf(s2,cnt2); continue;}
else printf("%c. ",pd1(s2[]));
read(s3,cnt3); pf(s3,cnt3);
}
return ;
}
codechef T1 What's int the name的更多相关文章
- codechef Prime Distance On Tree(树分治+FFT)
题目链接:http://www.codechef.com/problems/PRIMEDST/ 题意:给出一棵树,边长度都是1.每次任意取出两个点(u,v),他们之间的长度为素数的概率为多大? 树分治 ...
- [Codechef - ADITREE] Adi and the Tree - 树链剖分,线段树
[Codechef - ADITREE] Adi and the Tree Description 树上每个节点有一个灯泡,开始所有灯泡都是熄灭的.每次操作给定两个数 \(a,b\) ,将 \(a,b ...
- C#判断输入的是否为数字(int.TryParse)
了解 TryParse: TryParse静态方法用来将字符串转换成对应类型的数值. 所以int.TryParse()是将字符串转换为int类型的,如果成功返回true,失败返回false. priv ...
- [Codechef November Challenge 2012] Arithmetic Progressions
题意:给定一个序列,求多少个三元组满足ai+ak=2*aj(i<j<k). 题解:原来叉姐的讲义上有啊..完全忘掉了.. 首先这个式子很明显是一个卷积.我们有了FFT的思路.但是肯定不能每 ...
- 模拟赛18 T1 施工 题解
前言: 真的是不容易啊.这个题在考场上想到了最关键的性质,但是没写出来. 后来写出来,一直调,小错不断. 没想到改的最后一个错误是两个int 乘起来爆了int 其实最后我还是觉得复杂度很假.\(n^2 ...
- C#与C++的发展历程第三 - C#5.0异步编程巅峰
系列文章目录 1. C#与C++的发展历程第一 - 由C#3.0起 2. C#与C++的发展历程第二 - C#4.0再接再厉 3. C#与C++的发展历程第三 - C#5.0异步编程的巅峰 C#5.0 ...
- 深入MySQL索引
MySQL索引作为数据库优化的常用手段之一在项目优化中经常会被用到, 但是如何建立高效索引,有效的使用索引以及索引优化的背后到底是什么原理?这次我们深入数据库索引,从索引的数据结构开始说起. 索引原理 ...
- C#多线程之基础篇2
在上一篇C#多线程之基础篇1中,我们主要讲述了如何创建线程.中止线程.线程等待以及终止线程的相关知识,在本篇中我们继续讲述有关线程的一些知识. 五.确定线程的状态 在这一节中,我们将讲述如何查看一个线 ...
- C#基础知识六之委托(delegate、Action、Func、predicate)
1. 什么是委托 官方解释 委托是定义方法签名的类型,当实例化委托时,您可以将其实例化与任何具有兼容签名的方法想关联,可以通过委托实例调用方法. 个人理解 委托通俗一点说就是把一件事情交给别人来帮助完 ...
随机推荐
- Python的文件输入输出,如何追加内容,读取内容,添加内容
python主要的文件打开的几种访问模式 模式可以为读模式('r').写模式('w')或追加模式('a'),当然还有rb.wb.ab.r+.w+.a+.rb+.wb+.ab+,然而实际从代码上我也没看 ...
- Linux上jdk的安装(CentOS6.5)
centos openjdk 安装 http://www.cnblogs.com/ilahsa/archive/2012/12/11/2813059.html 知CentOS6.5桌面版默认安装的是J ...
- PHP实现字节数Byte转换为KB、MB、GB、TB
function getFilesize($num) { $p = 0; $format = 'bytes'; if( $num > 0 && $num < 1024 ) ...
- Ubuntu 和 Windows 之间进行远程访问和文件互传
1. 利用 Ubuntu 自带软件 Remmina 对另一台 Ubuntu 电脑进行远程访问(同一局域网下) 假设要用 A 电脑来控制 B 电脑,首先需要在 B 电脑上进行桌面共享设置 . 然后打 ...
- sqlserver查询数据库中有多少个表,多少视图,多少存储过程,或其他对象
sql server 数表: select count(1) from sysobjects where xtype='U' 数视图: select count(1) from sysobjects ...
- lintcode-135-数字组合
135-数字组合 给出一组候选数字(C)和目标数字(T),找到C中所有的组合,使找出的数字和为T.C中的数字可以无限制重复被选取. 例如,给出候选数组[2,3,6,7]和目标数字7,所求的解为: [7 ...
- C++ Profiler工具之初体验
http://www.cnblogs.com/likwo/archive/2012/12/20/2826988.html 转 http://www.cnblogs.com/lenolix/archiv ...
- 【历史】- UNIX发展史(BSD,GNU,linux)
先前的一個理想 UNIX 系统自 1969 年 Ken Thompson 与 Dennis Ritchie 在美国贝尔电话实验室(Bell Telephone Laboratories)发展出雏形至今 ...
- 通过数据库评估存储设备IO性能-Oracle11gIO校准功能介绍
通过数据库评估存储设备IO性能 ---------Oracle11g IO校准功能介绍 前言 I/O子系统是ORACLE数据库的一个重要组成部分,因为I/O操作是贯穿数据库管理全过程,它操作的对象包括 ...
- iBatis的基本使用
项目结构: 依赖jar: 数据库依赖: CREATE TABLE `person` ( `id` ) NOT NULL AUTO_INCREMENT, `name` ) NOT NULL, PRIMA ...