新手光能
题目链接: 酷町堂:7145
#include<iostream>
using namespace std;
int m,n,a[100005],t,p,q;
int f(int x){
for(int i=1;i<=n;i++){
if(a[i]==x){
return i;
}
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
a[i]=i;
}
while(m--){
cin>>t;
if(t==1){
cin>>p;
int pos=f(p);
for(int i=pos-1;i>=1;i--){
a[i+1]=a[i];
}
a[1]=p;
}else if(t==2){
cin>>p;
int pos=f(p);
for(int i=pos+1;i<=n;i++){
a[i-1]=a[i];
}
a[n]=p;
}else{
cin>>p>>q;
int pos1=f(p);
int pos2=f(q);
if(pos1<pos2){
for(int i=pos1+1;i<=pos2;i++){
a[i-1]=a[i];
}
a[pos2]=p;
}else if(pos1>pos2){
for(int i=pos1-1;i>=pos2+1;i--){
a[i+1]=a[i];
}
a[pos2+1]=p;
}
}
}
for(int i=1;i<=n;i++){
cout<<a[i]<<" ";
}
return 0;
}
初级天翼
这题的时间复杂度数O(10^9)
超时第一个样例
得用链表
刘意阳在2022-08-22 18:42:28追加了内容
打错了
刘意阳在2022-08-25 08:54:37追加了内容
@崔皓博
这是数字小人解析网址