Problem M: STL——整理唱片

xiaoxiao2021-02-28  96

HomeWeb BoardProblemSetStandingStatusStatistics

Problem M: STL——整理唱片

Time Limit: 1 Sec   Memory Limit: 128 MB Submit: 4261   Solved: 1204 [ Submit][ Status][ Web Board]

Description

小明有一个书架,但是他却用它放了许多唱片。但是他的习惯很不好,唱片胡乱摆放。于是他决定整理一下他的唱片。为了方便起见,小明用一个整数表示他对一张唱片的喜爱程度。 小明会对书架上的唱片进行的整理可以细化成如下操作: 1:在第一个喜爱程度为i唱片后放入一张喜爱程度为j的新唱片; 2:拿走所有的喜爱程度小于等于i唱片,因为小明无法忍受喜爱程度小于等于i的唱片 3:将所有喜爱程度为i的唱片拿出,并将一张喜爱程度为i的新唱片放入第一张喜爱程度为j的唱片后面。 输出小明整理完后的唱片排列情况(显示唱片的喜爱程度即可) 注:对于非法操作应该自动忽略,如情况1不存在要求的喜爱程度i,则自动忽略,不应该影响结果。

Input

输入有多组情况,每组第一行为n,表示唱片数,下一行有n个数字,表示各个唱片首小明的喜爱程度。下一行为m,小明的操作次数,一下m行每行开始包含一个数字t,表示题目中描述的操作种类,后面跟着一到两个数字,表示题目描述中的i和j

Output

每组情况输出一行,表示唱片整理后的情况,最后一个数字后木有空格。(n,m<=1000)

Sample Input

51 2 3 4 531 5 63 1 32 4

Sample Output

5 6

HINT

用STL的list容易解决。

Append Code

[ Submit][ Status][ Web Board]

한국어<  中文 فارسی English ไทย All Copyright Reserved 2010-2011 SDUSTOJ TEAM GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin

#include <iostream> #include <list> #include <cstdio> #include <algorithm> using namespace std; int main() { int n,m; list<int> CD; while(scanf("%d",&n)!=EOF) { for(int i=0;i<n;i++) { int a; cin >> a; CD.push_back(a); } cin >> m; for(int i=0;i<m;i++) { int num; cin >> num; if(num==1) { int step1,step2; cin >> step1 >> step2; list<int>::iterator qiqi; qiqi=find(CD.begin(),CD.end(),step1); if(qiqi!=CD.end()) CD.insert(++qiqi,step2); } else if(num==2) { int step; cin >> step; list<int>::iterator qiqi; for(qiqi=CD.begin();qiqi!=CD.end(); ) { if(*qiqi<=step) CD.erase(qiqi++); else qiqi++; } } else if(num==3) { int step1,step2; cin >> step1 >> step2; list<int>::iterator qiqi; qiqi=find(CD.begin(),CD.end(),step2); if(qiqi!=CD.end()) CD.remove(step1); qiqi=find(CD.begin(),CD.end(),step2); if(qiqi!=CD.end()) CD.insert(++qiqi,step1); } } list<int>::iterator zhgcu; for(zhgcu=CD.begin();zhgcu!=CD.end();zhgcu++) { if(zhgcu!=CD.begin()) cout << " "; cout << *zhgcu; } cout << endl; CD.clear(); } }
转载请注明原文地址: https://www.6miu.com/read-45207.html

最新回复(0)