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. 什么是委托 官方解释 委托是定义方法签名的类型,当实例化委托时,您可以将其实例化与任何具有兼容签名的方法想关联,可以通过委托实例调用方法. 个人理解 委托通俗一点说就是把一件事情交给别人来帮助完 ...
随机推荐
- TensorLayer 中文文档
TensorLayer 中文文档 好消息 我们获得了 ACM Multimedia (MM) 年度最佳开源软件奖. TensorLayer 是为研究人员和工程师设计的一款基于Google Tensor ...
- Qt 贪吃蛇小游戏
简单的实现了走和变大的样子,剩下的还在完善 贴代码 #include "mainwindow.h" #include "ui_mainwindow.h" #in ...
- Qt 实现脉搏检测-1-心跳曲线部分
最新的想法就是写一个显示脉搏的东西,主要就是通过串口读取硬件(检测心跳的)传来的数据,在显示一下. 先实现画心跳曲线 如下图 先来电干货, 首先,在这个代码中,第一次用到了list这个东东 所以,关于 ...
- libvirt保持虚拟机运行情况下修改名称
通过virsh list命令能看到虚拟机的列表: [root@compute2 ~]# virsh list Id 名称 状态 ------------------------------------ ...
- MySQL训练营01
一.数据库基础知识: 1. 数据库(database):保存有组织的数据的容器(通常是一个或者一组文件) 2. 数据库管理系统(DBMS):数据库软件,外界通过DBMS来创建和操纵数据库,具体是什么, ...
- cmd命令笔记
查看端口信息:netstat -ano eg. netstat -ano|findstr 0.0.0.0:443 根据pid查看进程信息等:wmic process get name,executab ...
- SPOJ 1812 Longest Common Substring II(后缀自动机)(LCS2)
A string is finite sequence of characters over a non-empty finite set Σ. In this problem, Σ is the s ...
- jquery用正则表达式验证密码强度
/** * 不加paste鼠标粘贴不起作用 * 不加input第一次粘贴的时候不变 * 加上input和focus可以兼容表情 * ke ...
- 学习MVC中出现的一个BUG
BUG描述:No Entity Framework provider found for the ADO.NET provider with invariant name 'System.Data.S ...
- CSS设计指南之ID属性
1.用于页内导航的ID ID也可以用在页内导航连接中.下面就是一个链接,其目标是同一页的另一个位置. <a href="#bio">Biography</a> ...