CSU1312:榜单(模拟)
Description
ZZY很喜欢流行音乐,每周都要跟踪世界各地各种榜单,例如Oricon和Billboard,现在给出每周各个单曲的销量请给出每周的TOP5以及TOP5中各个单曲的浮动情况。
量的排名是按照本周销量排名,而不是总销量。
浮动情况则是较上周的排名变动,也就是说即使某单曲本周销量比上周的差,但排名比上周高,也是*UP*。反之若排名比上周低则为*DOWN*。若与上周的名次一样,则是*STAY*。
若是本周发行的新单(前面未有统计过销量),则浮动的情况为*NEW*。所以第一周所有单的情况都为*NEW*。
Input
多组数据,每周第一行输入为一个正整数N(5<=N<=10)表示当周统计了销量的专辑数,当N=0时结束输入。(不超过10周)
每周的单曲名字都是不超过30位的字符串(不会有空格,连续的串),名字后面跟的就是销量,单周最大销量不超过200万张。并且在不同周,相同的专辑名字一定是一模一样(相同的字符串)。
每周不会出现两个单曲销量相同。
本周没有统计前面某个已存在单曲的销量则说明本周其销量小得可以忽略,为0。
Output
第一组数据为第一周,第二组数据为第二周,以此类推。
每周数据第一行为WEEK k其中k为周数,WEEK k的左右两边各16个'-'。
紧接着五行,依次为top1~top5。
先输出当前是第几名"rank.",再接着当前名次单曲较上周的浮动情况。
*DOWN*与*STAY*后面空两格格输出单曲名,*NEW*后面空三格输出单曲名,*UP*后面空四格输出单曲名。
每行输出完单曲名后不要输出多余空格。
具体输出格式细节参考样例。
Sample Input
Sample Output
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std; struct node
{
char name[50];
int num;
int no;
} now[30]; struct kode
{
char name[50];
int num;
int no;
} before[300]; int cmp(node x,node y)
{
return x.num>y.num;
} int cmp2(kode x,kode y)
{
return x.num>y.num;
} int main()
{
int n,i,week = 0,m = 0,j;
//m是记录所有曾经出现过的歌曲的数目
while(~scanf("%d",&n),n)
{
week++;
for(i = 0; i<n; i++)
scanf("%s %d",now[i].name,&now[i].num);
sort(now,now+n,cmp);
for(i = 0; i<n; i++)
now[i].no = i+1;
printf("----------------WEEK %d----------------\n",week);
if(week==1)
{
for(i = 0; i<5; i++)
{
printf("%d.*NEW* %s\n",now[i].no,now[i].name);
}
}
else if(week)
{
for(i = 0; i<5; i++)
{
for(j = 0; j<m; j++)
{
if(!strcmp(now[i].name,before[j].name))//比较排名
{
if(now[i].no>before[j].no)
printf("%d.*DOWN* %s\n",now[i].no,now[i].name);
else if(now[i].no==before[j].no)
printf("%d.*STAY* %s\n",now[i].no,now[i].name);
else if(now[i].no<before[j].no)
printf("%d.*UP* %s\n",now[i].no,now[i].name);
break;
}
}
if(j>=m)
printf("%d.*NEW* %s\n",now[i].no,now[i].name);
}
}
for(i = 0; i<n; i++)
{
for(j = 0;j<m;j++)
{
if(!strcmp(before[j].name,now[i].name))//已经出现过,更新销量
{
before[j].num = now[i].num;
break;
}
}
if(j>=m || m==0)//m为0,或者以前的列表中没有出现过,则加入以前的列表中
{
strcpy(before[m].name,now[i].name);
before[m].num = now[i].num;
m++;
}
}
for(j = 0;j<m;j++)
{
for(i = 0;i<5;i++)
{
if(!strcmp(before[j].name,now[i].name))//找出这次排名前五的
{
before[j].no = now[i].no;
break;
}
}
if(i>=5)//排名在五之后,令其排名为无穷大
{
before[j].no = 999999999;
}
}
} return 0;
}
CSU1312:榜单(模拟)的更多相关文章
- csu 1312 榜单(模拟题)
http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1312 1312: 榜单 Time Limit: 1 Sec Memory Limit: 128 ...
- 2016年Q2《网络安全创新500强》榜单解读
近日,美国投资咨询机构Cybersecurity Ventures发布了2016 Q2<网络安全创新500强>企业榜单,新兴安全公司root9B异军突起,国内4家企业上榜. 关于Cyber ...
- 【图文详解】scrapy安装与真的快速上手——爬取豆瓣9分榜单
写在开头 现在scrapy的安装教程都明显过时了,随便一搜都是要你安装一大堆的依赖,什么装python(如果别人连python都没装,为什么要学scrapy….)wisted, zope interf ...
- 最新榜单!消金企业TOP10,数据、风控、催收服务方TOP5
最新榜单!消金企业TOP10,数据.风控.催收服务方TOP5 布谷TIME2016-12-15 17:47:59消费 风控阅读(164)评论(0) 声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账 ...
- 年度榜单:2013年最佳免费 PSD 设计素材揭晓
<年度榜单>系列继续给大家带来2013年度发布的好东西,这篇文章要给大家分享的是本年度最佳的12套精美的 PSD 设计素材,你可以免费下载使用.这些免费素材不仅能帮助他们节省大量的时间,而 ...
- WP老杨解迷:评论数和下载量、榜单的关系
书接上回,继续研讨评论系统的深层经验,这次从另外一个角度看清榜单关系,提升装逼水准2个加号,如果你能看懂本文,并活学活用,足可在Win10之前醉卧隆中,通晓Windows Phone市场风云变幻,哪些 ...
- WP老杨解迷:开发生态两极化和榜单乱象
Windows Phone 自2013年的一片浪潮推动下,2014年终于开始引起了各大小CP们的注意,于是大量的产品开始乘风破浪一路涌进Windows Phone平台,立即改变了榜单的格局,如今,苦B ...
- Fiddler-008-简单模拟性能测试
通过 Fiddler 可以简单的模拟性能测试的并发测试,此方法非常的简单,直接讲述如何使用,敬请参阅! 首先我们要获取需要并发的 HTTP请求,此操作非常简单,则在此不再赘述.获取到响应的 HTTP请 ...
- 推荐一款App运营工具:AYL爱盈利App榜单监控
对包括开发者.产品运营.投资人在内的诸多移动互联网从业人员而言,国内Android应用市场和IOS应用市场的榜单变化数据时大家的必修功课之一:看看这段时间所关注的垂直领域里最火的是哪几款应用:看看竞争 ...
随机推荐
- ie9以上浏览器input文本框/密码框后面的小叉子/小眼睛问题
找了很久不知什么属性控制的这个东西,经过群友的指点重要找到.
- 关于【键鼠<局域网>共享软件:synergy】install
Installation 另外,本人在centos6.5环境下作为server运行时,遇到一个问题,synergy1.5随着系统升级居然变成了1.3X,所以如果遇到类似问题,请您先用 rpm -qa ...
- python for list generate content
content = [ii for ii in range(50)] This can generate a list content
- OC语言-02面向对象的三大特性
01封装 #import <Foundation/Foundation.h> @interface Student : NSObject { //@public 成员变量尽量不使用 int ...
- C# mvc 验证码3
//// <summary> /// 生成验证码 /// </summary> /// <param name="length">指定验证码的长 ...
- RestKit:iOS开发必备,告别众多无聊代码
http://www.csdn.net/article/2014-04-15/2819312-RestKit-frameworkRestKit是一款专为iOS设计的Objective-C框架,旨在与R ...
- 【 UVALive - 2197】Paint the Roads(上下界费用流)
Description In a country there are n cities connected by m one way roads. You can paint any of these ...
- Copying Linked Lists with Random Pointers
Copying Linked Lists with Random Pointers 两个方法:方法一: 1.不考虑随机指针的情况下复制链表: 2.在复制过程中建立一个以原链表节点地址为key,相应的复 ...
- iframe详细用法
<iframe>是框架的一种形式,也比较常用到. 例子1.<iframe width=420 height=330 frameborder=0 scrolling=auto src= ...
- NIOS中双CPU系统的构建
首先构建SOPC系统,先分别添加两个CPU,分别命名为CPU1和CPU2,设置如下图,其中CPU1运行VGA的乒乓游戏,CPU2运行音乐,这里为了简单,音乐用LED来表示. 这里CPU1选择是中等容量 ...