排行榜"/>
P1159 排行榜
一、题目
二、解题思路
1.读懂题目以后,会发现题目似乎不难,直接想到,设置三个列表,分别保存UP、DOWN和SAME的歌曲,把UP的数组放在结果的后面,然后把DOWN的结果放在前面。
2.开始以为会有坑,抱着试试的态度提交,结果直接AC
三、代码
#include<iostream>
#include<string>
#include<vector>
#include<map>
#include<algorithm>
#include<cmath>
#include<queue>
using namespace std;
int main(){int N;cin>>N;vector<string> head, rear,same;vector<int> same_id;for(int i=0;i<N;i++){string name, state;cin>>name>>state;if(state=="UP")rear.push_back(name);else if(state=="DOWN")head.push_back(name);else {same_id.push_back(i);same.push_back(name);}}vector<string> ret(N, "");for(int i=0;i<same_id.size();i++){ret[same_id[i]]=same[i];}int now_id=0;for(int i=0;i<head.size();i++){while(ret[now_id].size())now_id++;ret[now_id++]=head[i];}for(int i=0;i<rear.size();i++){while(ret[now_id].size())now_id++;ret[now_id++]=rear[i];}for(int i=0;i<N;i++)cout<<ret[i]<<endl;
}
更多推荐
P1159 排行榜
发布评论