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. 什么是委托 官方解释 委托是定义方法签名的类型,当实例化委托时,您可以将其实例化与任何具有兼容签名的方法想关联,可以通过委托实例调用方法. 个人理解 委托通俗一点说就是把一件事情交给别人来帮助完 ...
随机推荐
- 在Go语言里检测内存泄漏
我们先来设定一下数据库,建立一个MySQL数据库表,名为users,里面有login_name.nickname.uid.password.forbidden几个字段,其中uid与forbidden为 ...
- pprof 查看goroutine
package main import ( "net/http" "runtime/pprof" ) var quit chan struct{} = make ...
- Kotlin 0
#0 下载与配置: 官网上写的很详细,不再重复. #1 Hello world fun main(args: Array<String>) { println("Hello, w ...
- Mac下安装pear库+phpDocumentor
1. 首先安装pear: curl -o go-pear.php https://pear.php.net/go-pear.phar 看见这个就安装OK: % Total % Received % X ...
- PHP Fatal error: Undefined class constant 'MYSQL_ATTR_INIT_COMMAND'
最近用ThinkPHP,给公司布置线上的网站的时候,遇到的一个问题,记录一下. 打开IE浏览器的设置,Internet选项里的高级,将”显示友好的HTTP错误消息“前都勾去掉! 再次刷新,看到的错误是 ...
- MyBatis整体了解
背景资料 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBati ...
- Week2 Teamework from Z.XML 软件分析与用户需求调查(二)应用助手功能评测
评测人:薛亚杰 周敏轩. 说明:言辞激烈,请勿介意. 软件使用概述 我们团队这次评测的必应助手是必应缤纷桌面的一个小功能,根据评测人员试用几天后发现,它的作用大概就是能够用一种看上去比较生动的形式来给 ...
- iOS-缓存
1. 实现数据模型缓存 可以用NSKeyedArchiver类来实现数据模型缓存.为了把模型对象用NSKeyedArchiver归档,模型类需要遵循NSCoding协议. . 应该用哪种缓存技术 在众 ...
- 深入研究java.lang.Runtime类(转)
一.概述 Runtime类封装了运行时的环境.每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接. 一般不能实例化一个Runtime对象, ...
- 除了基本类型,其余类型基本上大部分new出来 java.sql 包下面要不需要new
除了基本类型,其余类型基本上大部分new出来 java.sql 包下面要不需要new