Untitled
unknown
plain_text
3 years ago
1.7 kB
5
Indexable
#include<bits/stdc++.h> using namespace std; #define int long long int INF=1e18; void sol(){ int n; cin>>n; vector<int> v(n),p(n),ans,x,y; vector<pair<int,int>> print; for(int i=0;i<n;i++){ cin>>v[i]; p[i]=v[i]; } sort(p.begin(),p.end()); p.resize(unique(p.begin(),p.end())-p.begin()); int c=p.size(); vector<int> a(c); for(int i=0;i<n;i++){ int id=lower_bound(p.begin(),p.end(),v[i])-p.begin(); a[id]++; v[i]=id; } for(int i=0;i<c;i++){ if(a[i]&1){ cout<<-1<<endl; return; } } for(int i=0;i<n;i=i+2){ int y=v[i]; int t=i; for(int j=i+1;j<n;j++){ if(v[j]==v[i]){ t=j; break; } } int t1=t; for(int j=n-1;j>=t;j--){ print.push_back({t1,v[j]}); t1++; } ans.push_back((n-t)*2); reverse(v.begin()+t,v.begin()+n); t1=i+1; for(int j=n-1;j>=t;j--){ print.push_back({t1,v[j]}); t1++; } ans.push_back((n-t)*2); reverse(v.begin()+t,v.begin()+n); } cout<<print.size()<<endl; for(auto q:print){ cout<<q.first<<' '<<p[q.second]<<endl; } cout<<ans.size()+n/2<<endl; for(int i=0;i<n/2;i++){ cout<<2<<' '; } for(int j=ans.size()-1;j>=0;j--){ cout<<ans[j]<<' '; } cout<<endl; } signed main(){ ios_base::sync_with_stdio(false); cin.tie(0); int t; cin>>t; while(t--){ sol(); } return 0; }
Editor is loading...