結果

問題 No.1854 Limited Bubble Sort
ユーザー 沙耶花沙耶花
提出日時 2022-02-25 22:30:48
言語 C++17
(gcc 12.3.0 + boost 1.83.0)
結果
WA  
実行時間 -
コード長 1,209 bytes
コンパイル時間 4,278 ms
コンパイル使用メモリ 260,360 KB
実行使用メモリ 4,380 KB
最終ジャッジ日時 2023-09-16 17:37:06
合計ジャッジ時間 6,292 ms
ジャッジサーバーID
(参考情報)
judge12 / judge13
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 1 ms
4,380 KB
testcase_01 AC 2 ms
4,380 KB
testcase_02 AC 2 ms
4,376 KB
testcase_03 AC 2 ms
4,380 KB
testcase_04 AC 2 ms
4,376 KB
testcase_05 AC 2 ms
4,380 KB
testcase_06 AC 2 ms
4,376 KB
testcase_07 WA -
testcase_08 WA -
testcase_09 WA -
testcase_10 AC 1 ms
4,376 KB
testcase_11 AC 4 ms
4,380 KB
testcase_12 AC 4 ms
4,380 KB
testcase_13 AC 7 ms
4,376 KB
testcase_14 AC 4 ms
4,376 KB
testcase_15 AC 3 ms
4,380 KB
testcase_16 AC 7 ms
4,380 KB
testcase_17 AC 6 ms
4,380 KB
testcase_18 AC 7 ms
4,380 KB
testcase_19 AC 7 ms
4,376 KB
testcase_20 AC 7 ms
4,380 KB
testcase_21 AC 6 ms
4,376 KB
testcase_22 AC 9 ms
4,376 KB
testcase_23 AC 6 ms
4,376 KB
testcase_24 AC 11 ms
4,376 KB
testcase_25 AC 2 ms
4,380 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <stdio.h>
#include <bits/stdc++.h>
#include <atcoder/all>
using namespace atcoder;
using mint = modint998244353;
using namespace std;
#define rep(i,n) for(int i=0;i<(n);i++)
#define Inf 1000000001

int main(){
	
	
	
	int _t;
	cin>>_t;
	
	rep(_,_t){
		
		int n;
		cin>>n;
		
		vector<int> p(n);
		rep(i,n){
			cin>>p[i];
			p[i]--;
		}
		bool f = true;
		vector<int> a;
		rep(i,n){
		//	cout<<i<<endl;
			int ind = 0;
			rep(j,n){
				if(p[j]==i){
					ind = j;
					break;
				}
			}
			while(ind!=i){
				if(p[ind-1] == ind-1){
					f = false;
					break;
				}
				int cur = ind-1;
				bool F = false;
				while(true){
					if(cur==-1 || p[cur] < i){
						F = true;
						break;
					}
					if(cur+1 == p[cur])cur--;
					else break;
				}
				//cout<<cur<<endl;
				if(F){
					while(p[i] != i){
						a.push_back(ind-1);
						swap(p[ind],p[ind-1]);
						ind--;
					}
				}
				else{
					while(cur!=ind){
						a.push_back(cur);
						swap(p[cur],p[cur+1]);
						cur++;
					}
					ind--;
				}
			}
			if(!f)break;
		}
		if(!f){
			cout<<-1<<endl;
		}
		else{
			cout<<a.size()<<endl;
			rep(i,a.size()){
				if(i!=0)cout<<' ';
				cout<<a[i]+1;
			}
			cout<<endl;
		}
		
	}
	
	return 0;
}
0