QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#236902 | #6838. Assumption is All You Need | Andy# | WA | 1ms | 3540kb | C++20 | 1.4kb | 2023-11-04 11:25:14 | 2023-11-04 11:25:15 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
inline int read(){
char c=getchar();
int f=1,x=0;
for(;c<'0'||c>'9';c=getchar()) if(c=='-') f=-1;
for(;c>='0'&&c<='9';c=getchar()) x=x*10+c-'0';
return f*x;
}
void solve();
int main(){
cin.tie(0)->sync_with_stdio(false);
int t=1;
cin>>t;
while(t--)solve();
return 0;
}
const int N=3000;
int a[N],b[N],ia[N],ib[N];
void solve(){
int n;cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
ia[a[i]]=i;
}
for(int i=1;i<=n;i++){
cin>>b[i];
ib[b[i]]=i;
}
set<int>s1,s2;
s1.insert(ia[n]);
s2.insert(ib[n]);
vector<pair<int,int>>V;
for(int i=n-1;i;i--){
vector<int>S1,S2;
for(auto w:s1)S1.push_back(w);
for(auto w:s2)S2.push_back(w);
for(int i=0;i<S1.size();i++)if(S1[i]>S2[i]){
cout<<-1<<endl;
return;
}
int p=lower_bound(S1.begin(),S1.end(),ia[i])-S1.begin();
int q=lower_bound(S2.begin(),S2.end(),ib[i])-S2.begin();
if(q<p){
V.emplace_back(ib[i],S2[q]);
for(int j=q;j<p-1;j++)V.emplace_back(S2[j],S2[j+1]);
}
else if(q>p){
V.emplace_back(S2[q-1],ib[i]);
for(int j=q-1;j>p;j--)V.emplace_back(S2[j],S2[j-1]);
}
s1.insert(ia[i]);
s2.insert(ib[i]);
}
cout<<V.size()<<endl;
for(auto i=V.rbegin();i!=V.rend();i++){
cout<<(i->first)<<" "<<(i->second)<<endl;
}
}
詳細信息
Test #1:
score: 100
Accepted
time: 1ms
memory: 3444kb
input:
3 2 1 2 2 1 4 4 1 2 3 1 3 2 4 8 8 7 6 5 4 3 2 1 1 8 7 6 5 4 3 2
output:
-1 2 1 2 2 4 7 7 8 6 7 5 6 4 5 3 4 2 3 1 2
result:
ok T=3
Test #2:
score: -100
Wrong Answer
time: 0ms
memory: 3540kb
input:
315 10 8 4 6 1 2 9 7 5 10 3 6 7 8 10 5 1 3 2 9 4 10 10 8 2 9 6 5 7 4 3 1 7 1 3 5 9 8 4 10 6 2 6 4 6 5 3 1 2 1 5 4 6 2 3 12 5 9 12 8 10 6 11 4 2 3 1 7 9 2 3 1 5 12 4 7 6 10 8 11 10 4 7 3 2 8 9 6 10 5 1 1 4 8 10 3 7 9 6 2 5 7 1 2 4 5 6 7 3 4 3 5 6 7 2 1 3 1 3 2 2 1 3 7 1 5 3 7 6 4 2 6 5 2 1 3 4 7 1 1 ...
output:
-1 30 9 10 8 9 7 8 6 7 5 6 4 5 3 4 2 3 5 4 6 5 7 6 8 7 9 8 9 10 8 9 7 8 6 7 5 6 4 5 3 4 8 9 7 8 6 8 5 6 4 5 8 9 6 8 5 6 1 5 5 8 7 4 5 3 4 2 3 1 2 5 6 2 3 2 4 -1 -1 -1 -1 -1 0 -1 -1 -1 9 5 6 4 5 3 4 2 3 1 2 4 3 5 4 5 6 4 5 -1 -1 -1 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 5 4 5 3 4 2 3 1 2 3 4 -1 -1 -1 -1 -1 -...
result:
wrong answer 9-th operation (5, 4) not valid: (x < y) == false