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

6 AKB48-Give_me_Five 1200000 Adele-Set_Fire_To_The_Rain 900000 Katy_Perry-Part_Of_Me 400000 KANA-Sakura,I_love_you 360000 Nicki_Minaj-Starships 300000 AAA-SAILING 350000 5 KAT_TUN-CHAIN 550000 Adele-Set_Fire_To_The_Rain 850000 AKB48-Give_me_Five 500000 KANA-Sakura,I_love_you 300000 Nicki_Minaj-Starships 290000 0

Sample Output

----------------WEEK 1---------------- 1.*NEW* AKB48-Give_me_Five 2.*NEW* Adele-Set_Fire_To_The_Rain 3.*NEW* Katy_Perry-Part_Of_Me 4.*NEW* KANA-Sakura,I_love_you 5.*NEW* AAA-SAILING ----------------WEEK 2---------------- 1.*UP* Adele-Set_Fire_To_The_Rain 2.*NEW* KAT_TUN-CHAIN 3.*DOWN* AKB48-Give_me_Five 4.*STAY* KANA-Sakura,I_love_you 5.*UP* Nicki_Minaj-Starships
 
模拟题,需要注意的是,以前操作过的每首歌曲都是存在的,而不只是根据上一组来判定
 
#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:榜单(模拟)的更多相关文章

  1. csu 1312 榜单(模拟题)

    http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1312 1312: 榜单 Time Limit: 1 Sec  Memory Limit: 128 ...

  2. 2016年Q2《网络安全创新500强》榜单解读

    近日,美国投资咨询机构Cybersecurity Ventures发布了2016 Q2<网络安全创新500强>企业榜单,新兴安全公司root9B异军突起,国内4家企业上榜. 关于Cyber ...

  3. 【图文详解】scrapy安装与真的快速上手——爬取豆瓣9分榜单

    写在开头 现在scrapy的安装教程都明显过时了,随便一搜都是要你安装一大堆的依赖,什么装python(如果别人连python都没装,为什么要学scrapy….)wisted, zope interf ...

  4. 最新榜单!消金企业TOP10,数据、风控、催收服务方TOP5

    最新榜单!消金企业TOP10,数据.风控.催收服务方TOP5 布谷TIME2016-12-15 17:47:59消费 风控阅读(164)评论(0) 声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账 ...

  5. 年度榜单:2013年最佳免费 PSD 设计素材揭晓

    <年度榜单>系列继续给大家带来2013年度发布的好东西,这篇文章要给大家分享的是本年度最佳的12套精美的 PSD 设计素材,你可以免费下载使用.这些免费素材不仅能帮助他们节省大量的时间,而 ...

  6. WP老杨解迷:评论数和下载量、榜单的关系

    书接上回,继续研讨评论系统的深层经验,这次从另外一个角度看清榜单关系,提升装逼水准2个加号,如果你能看懂本文,并活学活用,足可在Win10之前醉卧隆中,通晓Windows Phone市场风云变幻,哪些 ...

  7. WP老杨解迷:开发生态两极化和榜单乱象

    Windows Phone 自2013年的一片浪潮推动下,2014年终于开始引起了各大小CP们的注意,于是大量的产品开始乘风破浪一路涌进Windows Phone平台,立即改变了榜单的格局,如今,苦B ...

  8. Fiddler-008-简单模拟性能测试

    通过 Fiddler 可以简单的模拟性能测试的并发测试,此方法非常的简单,直接讲述如何使用,敬请参阅! 首先我们要获取需要并发的 HTTP请求,此操作非常简单,则在此不再赘述.获取到响应的 HTTP请 ...

  9. 推荐一款App运营工具:AYL爱盈利App榜单监控

    对包括开发者.产品运营.投资人在内的诸多移动互联网从业人员而言,国内Android应用市场和IOS应用市场的榜单变化数据时大家的必修功课之一:看看这段时间所关注的垂直领域里最火的是哪几款应用:看看竞争 ...

随机推荐

  1. 配置并学习微信JS-SDK(2)—扫一扫接口http://www.qq210.com/shoutu/android

    http://www.qq210.com/shoutu/android //c_开头的js变量是服务器传过来的 var c_access_token = "<?=$access_tok ...

  2. 桂电在线-php-提取菜单到配置文件

    新建存储菜单的配置文件 menus.php,并配置菜单 <?php if ( ! defined('BASEPATH')) exit('No direct script access allow ...

  3. Jquery常用功能

    jQuery 1.4给开发者带来了很多值得兴奋的新特性,同时使用jQuery的人也越来越多,为了方便大家对jQuery的使用,下面列出了一些jQuery使用技巧.比如有禁止右键点击.隐藏搜索文本框文字 ...

  4. WebApi(四)-Post接口请求失败或接受不到参数(解决方法)

    post方式只能接受一个参数而且必须用FromBody特性标识,所以当没有使用FromBody特性标识的时候就会请求失败,如有添加添加了那访问接口时候参数应传对象不能是key:val的格式否则会接收到 ...

  5. VS 调试相关

    最近用VS2013 调试遇到的一点小问题,老年痴呆做一下记录. 1. IIS 用 w3wp.exe 调试: IIS 中的文件系统与工程的保持一致,否则断点不会命中: 发布文件系统后,重启站点对应的应用 ...

  6. SpringSecurity数据库中存储用户、角色、资源

    这几天项目中用到了SpringSecurity做登陆安全.所以在这写一下也许可以帮助一下其他人,自己也熟悉一下 SpringSecurity配置文件如下: <beans:beans xmlns= ...

  7. Mac os 10.9下面配置JAVA_HOME

    刚入手的的MBP,就开始配置java环境,搜了一下网上的都是10.9以前的配置方法.jdk7在10.9的安装目录变化了. 首先到Oracle官网下载最新版本的java,直接默认安装 cd /etc s ...

  8. JSP内置对象(下)

    JSP中共有9大内置对象: out对象 requset对象 response对象 session对象 pageContext对象 application对象 config对象 page对象 excep ...

  9. 【Java】关于并发

    http://www.cnblogs.com/dolphin0520/p/3958019.html http://www.cnblogs.com/yank/p/3955322.html http:// ...

  10. Oracle 日期处理

    select * from dt where dw_data=to_date(to_char(sysdate-1,'YYYY-MM-DD'),'YYYY-MM-DD') ---取前一天日期 SQL&g ...