堕落很多很多天了,今天良心发现,我固然知道堕落很容易,也很开心,的确,那个斗罗大陆的确很好看,
但是,我也要节制一下,现在都已经是考试周,我还在看小说真的说不过去了,要是挂科了就真的得不偿失了。
做一下水题,调节一下自己,因为还有一个周时间给我调节,
然后就是恐怖的每天训练。其实训练不能说不累,
但是心里压力很大,来年就是大二了,要是自己能力不提升上去那么很多东西都没法玩了。
学一门新的语言,真的,有时候C/C++解决的问题真的非常有限,但是更多的东西在乎自己去学,
而不是让老师逼着自己去学,就好比高考,要不是真的意识到自己未来的大学对自己的影响,
我也不至于到现在一样,其实也不能强求,我真的有点想明白为什么自己不如别人,
人家每天都是在不断地提升,而自己看别人好的,却不懂得竞争,有多少个假期给自己堕落掉了。
但是这个暑假,我就不能再堕落,我已经做好准备了,
我知道,恐怖的40天来,会有无数的比赛,自己在每天的内疚中度过,
我知道很多同年级的同学比自己强,但是我只要在跑,哪怕追不上,我也要迈出属于自己的第一步,
有很多的题要补,但是不懂就去问问别人,多学几个算法,哪怕是最基础的,都要一步一步跟着走。
时间真的不多了,我知道看一天小说真的不错,自己脑补不同的打斗场面,
唐三升级打怪,但是自己也要向唐三学习学习呀,千里之行,始于足下。
题意:很明白,就是给了N个数,对于某一个数进行操作。
First 把某一个数放在最前面。
Last 把某一个数放在最后面。
最后把这个数输出来即可。
想法:
其实很简单,首先需要两个数组,第一个数组记录每一个数的对应的值。--A[]
另外的一个数组则记录他们之间的相对位置, --- B[]
只要 输入First 时把对应的元素放在第一,则对 B[ A [] ] =F--;
反之 B[ A[] ] =L++;
最后输出即可:
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+100;
int a[maxn],b[maxn];
bool cmp(int x,int y){
return b[x]<b[y];
}
int main()
{
int n,m;
char s[1000]={0};
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
b[a[i]]=i;
}
scanf("%d",&m);
getchar();
int F=-1,L=n+1;
while(m--){
cin.getline(s,sizeof(s));
char ins[100];
int x;
sscanf(s,"%s %d",ins,&x);
if(ins[0]=='F'){
b[x]=F--;
}else if(ins[0]=='L'){
b[x]=L++;
}
}sort(a,a+n,cmp);
for(int i=0;i<n;i++){
printf("%d%c",a[i],i==n-1?'\n':' ');
}
return 0;
}