小迈克尔住在一个小镇上,他喜欢看每周日下午发布的音乐电视评比。它每周都根据选票介绍相同的歌曲,列出这些歌曲的流行排行榜。
有一个星期日迈克尔和他的朋友在一起玩得太久了以致于未能看到新的流行榜。他非常失望,但是不久他就发现下周至少可以部分地建立出流行榜。除了每首歌曲的位置,排行榜还根据这些歌曲上周的排行列出了它们排行变动的信息,更精确地说,从这周起,不管那首歌是继续排在原位,还是排名上升或排名下降,都会给出一点说明。
编写程序,根据给定的流行榜帮助迈克尔推断出上周可能的排行榜。
标签:
5
HIGHHOPES
UP
LOWFEELINGS
UP
UPANDDOWN
DOWN
IAMSTILLSTANDING
DOWN
FOOLINGAROUND
DOWN
UPANDDOWN
IAMSTILLSTANDING
FOOLINGAROUND
HIGHHOPES
LOWFEELINGS
分析:先把排名不变的占了,然后从前往后优先占排名掉的,再占排名升的;
代码:
#include <bits/stdc++.h> const int maxn=1e5+10; using namespace std; int n,m,k,t,p,q; string a[maxn],b[maxn],ans[maxn]; string now,qq; int main() { int i,j; scanf("%d",&n); for(i=1;i<=n;i++) { cin>>now>>qq; if(qq=="UP")b[q++]=now; else if(qq=="SAME")ans[i]=now; else a[p++]=now; } int now1=0,now2=0; for(i=1;i<=n;i++) { if(ans[i]=="") { if(now1<p)ans[i]=a[now1++]; else ans[i]=b[now2++]; } } for(i=1;i<=n;i++)cout<<ans[i]<<endl; //system("pause"); return 0; }
标签:
原文地址:http://www.cnblogs.com/dyzll/p/5769192.html