蒟蒻求助(玄dia关
查看原帖
蒟蒻求助(玄dia关
964876
_maple_leaf_楼主2023/12/25 21:33

testtest 22 错了,蒟蒻求调 Orz

#include<bits/stdc++.h>
using namespace std;
const int N=55;
int T;
int n;
int a[N];
struct lsh{
	long long zhi;
	vector<int>xiabiao;
}ls[N];
int len;
void init(){
	memset(ls,0,sizeof(ls));
	ls[0].zhi=INT_MAX;
	len=0;
	memset(a,0,sizeof(a));
	n=0;
}
bool findt(long long t){
	for(int i=1;i<=len;i++){
		if(ls[i].zhi==t)return i;
	}return 0;
}
void word(){
//	for(int i=1;i<=n;i++)cout<<ls[a[i]].zhi;
	int cnt=0;
	long long l[n],r[n],d[n];
	a[0]=0;
	for(int i=1;i<n;i++){
		int minj=0;
		for(int j=i;j<=n;j++){
			if(ls[a[j]].zhi<ls[a[minj]].zhi)minj=j;
		}
		if(minj>i){
			cnt++;
			l[cnt]=i,r[cnt]=minj,d[cnt]=minj-i;
			for(int j=minj;j>i;j--)swap(a[j],a[j-1]);
		}
	}
	cout<<cnt<<endl;
	for(int i=1;i<=cnt;i++)cout<<l[i]<<" "<<r[i]<<" "<<d[i]<<endl;
	return ;
}
int main(){
	cin>>T;
	while(T--){
		init();
		cin>>n;
		for(int i=1;i<=n;i++){
			long long t;
			cin>>t;
			int tf=findt(t);
			if(tf)ls[tf].xiabiao.push_back(i),a[i]=tf;
			else ls[++len].zhi=t,ls[len].xiabiao.push_back(t),a[i]=len;
		}
		word();
	}
	return 0;
}

dalao 帮个忙 stO

2023/12/25 21:33
加载中...