codevs 1772 歌词
1772 歌词
35
痛过以后才知情已难寻
吾爱至斯只剩飞花梦影
回首再望蜀山依旧伫立
看尽浮沉独饮回忆
——《少年情》
旋律动听的曲子,伴着意境深远的歌词 而显得更加优美。要想学会一首歌,没有
一份装订精美的歌词,你让我情何以堪。
你的任务是,将一份歌词,按照给出规则整理好。
若干行文字(包括按规定格式给出歌曲名,歌词)
每一行格式为标识+内容
标识[name]表示后接歌曲名
标识[mm:ss]表示后接歌词,其中m,s表示每一位数字,为歌词出现的时间。保证符
合正常的计时方式。
若存在时间相同的歌词,则应按规则依次首尾相连在同一行输出,规则如下:
长度短的靠前;
长度相同则字典序小的靠前。
第一行八个空格+歌曲名
第二行及以后按时间顺序列出歌词
[00:02]she is the heaven-sent angel you met
[00:05]=.=.=.=.=
[00:04]she is so pretty all over the world
[00:01]she is the one that you never forget
[name]she
[00:03]oh,she must be the reason why God made a girl
she
she is the one that you never forget
she is the heaven-sent angel you met
oh,she must be the reason why God made a girl
she is so pretty all over the world
=.=.=.=.=
保证歌曲名和歌词均为英文字母,字符。
保证每一行不超过256 个字符
保证输入不超过2000 行
分类标签 Tags
//这题有毒!
#include<cstdio>
#include<algorithm>
using namespace std;
struct node{char r[];int tt,ss,cd;}q[];
bool cmp(const node&a,const node&b)
{
if(a.tt!=b.tt) return (a.tt<b.tt);
if(a.ss!=b.ss) return (a.ss<b.ss);
if(a.cd!=b.cd) return (a.cd<b.cd);
for(int i=;i<a.cd;i++)
if(a.r[i]!=b.r[i]) return (a.r[i]<b.r[i]);
return ;
}
int main()
{
int h=,pl=,i,k;
char a,b,c;
while(scanf("%c",&c)!=EOF)
{
if(c=='['&&pl==)
{
scanf("%c%c",&a,&b);
if(a=='n')
{
q[h].ss=;q[h].tt=;
while(c!=']') scanf("%c",&c);
continue;
}
else
{
q[h].tt=((int)(a))*+((int)(b));
scanf(":%d]",&q[h].ss);
continue;
}
}
if(c=='\n')
{
q[h].cd=pl;
pl=;
h++;
continue;
}
q[h].r[pl++]=c;
}
q[h].cd=pl;
h++;
sort(q,q+h,cmp);
for(i=;i<;i++) printf(" ");
for(i=;i<h;i++)
{
int j;
for(j=;j<q[i].cd;j++)
{
if(q[i].r[j]>='A'&&q[i].r[j]<='z') printf ("%c",q[i].r[j]);
if(q[i].r[j]==' '||q[i].r[j]=='-'||q[i].r[j]==','||q[i].r[j]=='='||q[i].r[j]=='.')
printf ("%c",q[i].r[j]);
}
if(i==h-) return ;
if(q[i+].tt==q[i].tt&&q[i+].ss==q[i].ss) continue;
printf("\n");
}
/*为什么这样不对呢???为什么提交零分呢?
for(int i=0;i<h;i++)
{
printf("%s",q[i].r);
if(q[i+1].tt==q[i].tt&&q[i+1].ss==q[i].ss) ;
else printf("\n");
}*/
return ;
}
codevs 1772 歌词的更多相关文章
- codevs 3289 花匠
题目:codevs 3289 花匠 链接:http://codevs.cn/problem/3289/ 这道题有点像最长上升序列,但这里不是上升,是最长"波浪"子序列.用动态规划可 ...
- iOS从零开始学习直播之音频4.歌词
上一篇讲了歌曲的切换,这一篇主要讲歌词部分的实现. 先看效果图.当歌手唱到这句歌词时候,我们要标记出来,这里显示字体为黄色. 1.获取歌词 一般歌词都是一个链接.类似于"http ...
- codevs 1082 线段树练习 3(区间维护)
codevs 1082 线段树练习 3 时间限制: 3 s 空间限制: 128000 KB 题目等级 : 大师 Master 题目描述 Description 给你N个数,有两种操作: 1:给区 ...
- codevs 1285 二叉查找树STL基本用法
C++STL库的set就是一个二叉查找树,并且支持结构体. 在写结构体式的二叉查找树时,需要在结构体里面定义操作符 < ,因为需要比较. set经常会用到迭代器,这里说明一下迭代器:可以类似的把 ...
- codevs 1576 最长上升子序列的线段树优化
题目:codevs 1576 最长严格上升子序列 链接:http://codevs.cn/problem/1576/ 优化的地方是 1到i-1 中最大的 f[j]值,并且A[j]<A[i] .根 ...
- codevs 1080 线段树点修改
先来介绍一下线段树. 线段树是一个把线段,或者说一个区间储存在二叉树中.如图所示的就是一棵线段树,它维护一个区间的和. 蓝色数字的是线段树的节点在数组中的位置,它表示的区间已经在图上标出,它的值就是这 ...
- codevs 1228 苹果树 树链剖分讲解
题目:codevs 1228 苹果树 链接:http://codevs.cn/problem/1228/ 看了这么多树链剖分的解释,几个小时后总算把树链剖分弄懂了. 树链剖分的功能:快速修改,查询树上 ...
- codevs 1082 线段树区间求和
codevs 1082 线段树练习3 链接:http://codevs.cn/problem/1082/ sumv是维护求和的线段树,addv是标记这歌节点所在区间还需要加上的值. 我的线段树写法在运 ...
- codevs 1052 地鼠游戏
1052 地鼠游戏 http://codevs.cn/problem/1052/ 题目描述 Description 王钢是一名学习成绩优异的学生,在平时的学习中,他总能利用一切时间认真高效地学习,他不 ...
随机推荐
- regsvr32命令
regsvr32是Windows操作系统命令,用来注册及反注册DLL文件和ActiveX文件. 1. 使用示例 regsvr32 foo.dll // 注册foo.dll文件到Windows ...
- 【转】Hadoop FS Shell命令
FS Shell 调用文件系统(FS)Shell命令应使用 bin/hadoop fs <args> 的形式. 所有的的FS shell命令使用URI路径作为参数.URI格式是scheme ...
- SQL SERVER中的OLEDB等待事件
OLEDB等待事件介绍 OLEDB等待类型是SQL SERVER 数据库中最常见的几种等待类型之一.它意味着某个会话(SPID)通过SQL Server Native Client OLEDB Pro ...
- ZooKeeper:Quick Start
下载.安装与配置 下载地址 安装 配置 ZooKeeper bin目录下脚本说明 Server 启动.停止 客户端操作 使用简易客户端访问 使用Java客户端访问 使用开源客户端ZkClient访问 ...
- native2ascii.exe 字符转码与反转码
本人最近在做OAF的二次开发,在看别人写的代码时,发现总有类似这样的语句:”\u65e0\u6548\u7684GP\u9879\u76ee\u7f16\u53f7“,这些语句其实是用Java_hom ...
- python基础(七)函数
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 函数最重要的目的是方便我们重复使用相同的一段程序. 将一些操作隶属于一个函数,以后 ...
- 如何使用 Entity Framework 构造动态查询表达式
一般的程序员做上几年以后, 或多或少的都有些代码的积累, 我也不例外. 作为微软技术程序员, 自从Linq和EF出来之后, 就基本上爱不释手了, 且不说执行效率的问题, 单单就开发效率和代码的可移植性 ...
- 【2016-10-31】【坚持学习】【Day16】【MongoDB】【入门 -概念】
MongoDB 概念解析 不管我们学习什么数据库都应该学习其中的基础概念,在mongodb中基本的概念是文档.集合.数据库,下面我们挨个介绍. 下表将帮助您更容易理解Mongo中的一些概念: SQL术 ...
- 装13失败后的逆袭(ComboBox的联动)
当我们在做ComboBox的联动的时候飞一般的敲出自认为完美的代码.在运行的时候突然变得不完美了. 比如: 如果发生了这种情况会不会就卡磁了呢 当然不会作为程序猿的我们考的是我们聪明的大脑,当然会想出 ...
- iOS Photos.framework框架
链接: iOS8.0 使用Photos.framework对相册的常用操作 iOS AssetsLibrary和Photos的使用总结: 权限及相册的获取 iOS 开发之照片框架详解 iOS Asse ...