QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#634068 | #7757. Palm Island | Bai_xiaobo# | TL | 0ms | 3624kb | C++20 | 1.8kb | 2024-10-12 16:39:27 | 2024-10-12 16:39:28 |
Judging History
answer
#include<bits/stdc++.h>
#pragma GCC optimize(2)
using namespace std;
#define ll long long
#define endl "\n"
#define int long long
#define pr pair<int,int>
#define x first
#define y second
ll mod=1e9+7;
const ll N=1e3+10;
int a[N];
int b[N];
int l[N], r[N];
int suf[N];
int n;
void def(int s)
{
r[l[s]] = r[s];
l[r[s]] = l[s];
}
void ist(int s, int suf)
{
r[s] = suf;
l[s] = l[suf];
r[l[suf]] = s;
l[suf] = s;
}
void solve()
{
queue<int> ans;
cin >> n;
for (int i = 1; i <= n; i++)
cin >> a[i];
for (int i = 1; i <= n; i++)
{
if (i == 1)
l[a[i]] = a[n];
else
l[a[i]] = a[i - 1];
r[a[i]] = a[(i % n) + 1];
}
for (int i = 1; i <= n; i++)
cin >> b[i];
for (int i = 1; i <= n; i++)
suf[b[i]] = b[(i % n) + 1];
int cnt = 0;
for (int i = 1; i <= n; i++)
{
if (r[a[i]] != suf[a[i]])
cnt++;
}
int p = a[1];
while (cnt)
{
if (r[p] == suf[p])
{
p = r[p];
ans.push(1);
continue;
}
if (p == suf[l[p]])
cnt++;
if (r[p] == suf[l[p]])
cnt--;
int pp = r[p];
def(p);
while (pp != suf[p])
{
pp = r[pp];
ans.push(2);
}
ist(p, pp);
cnt--;
if (p == suf[l[p]])
cnt--;
}
while (p != b[1])
{
p = r[p];
ans.push(1);
}
while (!ans.empty())
{
cout << ans.front();
ans.pop();
}
cout << '\n';
}
/*
1
4
1 2 3 4
2 1 3 4
*/
signed main()
{
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
int t=1;
cin>>t;
while(t--)
solve();
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3624kb
input:
2 3 1 2 3 2 3 1 4 1 2 3 4 2 1 3 4
output:
1 2111
result:
ok Correct. (2 test cases)
Test #2:
score: -100
Time Limit Exceeded
input:
200 3 3 1 2 2 3 1 4 2 4 1 3 2 1 4 3 4 1 4 2 3 2 1 3 4 5 4 3 2 1 5 2 4 5 3 1 5 2 1 5 4 3 5 2 4 1 3 4 4 3 1 2 1 2 4 3 3 1 2 3 3 1 2 4 1 4 2 3 2 1 4 3 4 1 3 2 4 1 4 3 2 3 3 2 1 1 3 2 3 2 3 1 1 3 2 4 1 4 3 2 3 1 2 4 3 1 2 3 1 3 2 3 3 2 1 2 3 1 5 5 1 3 2 4 2 4 5 1 3 4 4 3 1 2 1 4 3 2 4 1 3 4 2 2 4 3 1 3 ...