#include <bits/stdc++.h>
#include <math.h>
using namespace std;
#define ll long long int
ll mod=998244353;
ll mul(ll a,ll b)
{
return ((a%mod)*(b%mod))%mod;
}
ll add(ll a,ll b)
{
return ((a%mod)+(b%mod))%mod;
}
ll sub(ll a,ll b)
{
return (((a+mod)%mod)-((b+mod)%mod)+mod)%mod;
}
ll po(ll a, ll b)
{
if(b==0)
{
return 1;
}
ll t=po(a,b/2);
if(b%2)
{
return mul(t,mul(t,a));
}
else
{
return mul(t,t);
}
}
ll fen[300005];
void upd(ll x, ll n)
{
for(ll i=x;i<=n;i+=(i&(-i)))
{
fen[i]++;
}
}
ll ret(ll x)
{
ll out=0;
for(ll i=x;i>0;i-=(i&(-i)))
{
out+=fen[i];
}
return out;
}
vector<ll> v[100005];
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cout<<fixed<<setprecision(12);
ll t;
cin>>t;
while(t--)
{
ll n;
cin>>n;
for(ll i=0;i<n+3;i++)
{
v[i].clear();
}
ll a[n];
unordered_map<ll,ll> m1;
for(ll i=0;i<n;i++)
{
cin>>a[i];
a[i]--;
v[i].push_back(a[i]);
m1[a[i]]++;
}
ll c[n];
set<pair<ll,ll>> s1;
for(ll i=0;i<n;i++)
{
cin>>c[i];
s1.insert(make_pair(c[i],i));
}
queue<ll> q;
for(ll i=0;i<n;i++)
{
if(m1[i]==0)
{
q.push(i);
}
}
ll out=0;
while(q.size())
{
auto it = q.front();
q.pop();
out+=(2*c[it]);
m1[a[it]]--;
if(m1[a[it]]==0)
{
q.push(a[it]);
}
auto it1 = s1.find(make_pair(c[it],it));
s1.erase(it1);
}
for(auto i:s1)
{
cout<<i.first<<" "<<i.second<<"\n";
}
while(s1.size())
{
auto it =s1.begin();
pair<ll,ll> p =(*it);
s1.erase(it);
ll ss = a[p.second];
while(ss!=p.second)
{
out+=(2*c[ss]);
auto it1 = s1.find(make_pair(c[ss],ss));
s1.erase(it1);
ss = a[ss];
}
out+=p.first;
}
cout<<out<<"\n";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlIDxtYXRoLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nIGludApsbCBtb2Q9OTk4MjQ0MzUzOwpsbCBtdWwobGwgYSxsbCBiKQp7CiAgICByZXR1cm4gKChhJW1vZCkqKGIlbW9kKSklbW9kOwp9CmxsIGFkZChsbCBhLGxsIGIpCnsKICAgIHJldHVybiAoKGElbW9kKSsoYiVtb2QpKSVtb2Q7Cn0KbGwgc3ViKGxsIGEsbGwgYikKewogICAgcmV0dXJuICgoKGErbW9kKSVtb2QpLSgoYittb2QpJW1vZCkrbW9kKSVtb2Q7Cn0KbGwgcG8obGwgYSwgbGwgYikKewogICAgaWYoYj09MCkKICAgIHsKICAgICAgICByZXR1cm4gMTsKICAgIH0KICAgIGxsIHQ9cG8oYSxiLzIpOwogICAgaWYoYiUyKQogICAgewogICAgICAgIHJldHVybiBtdWwodCxtdWwodCxhKSk7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICAgcmV0dXJuIG11bCh0LHQpOwogICAgfQp9CmxsIGZlblszMDAwMDVdOwp2b2lkIHVwZChsbCB4LCBsbCBuKQp7Cglmb3IobGwgaT14O2k8PW47aSs9KGkmKC1pKSkpCgl7CgkJZmVuW2ldKys7Cgl9Cn0KbGwgcmV0KGxsIHgpCnsKCWxsIG91dD0wOwoJZm9yKGxsIGk9eDtpPjA7aS09KGkmKC1pKSkpCgl7CgkJb3V0Kz1mZW5baV07Cgl9CglyZXR1cm4gb3V0Owp9CnZlY3RvcjxsbD4gdlsxMDAwMDVdOwppbnQgbWFpbigpCnsKCWlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwoJY2luLnRpZShOVUxMKTsKCWNvdXQudGllKE5VTEwpOwoJY291dDw8Zml4ZWQ8PHNldHByZWNpc2lvbigxMik7CglsbCB0OwoJY2luPj50OwoJd2hpbGUodC0tKQoJewoJCWxsIG47CgkJY2luPj5uOwoJCWZvcihsbCBpPTA7aTxuKzM7aSsrKQoJCXsKCQkJdltpXS5jbGVhcigpOwoJCX0KCQkKCQlsbCBhW25dOwoJCXVub3JkZXJlZF9tYXA8bGwsbGw+IG0xOwoJCWZvcihsbCBpPTA7aTxuO2krKykKCQl7CgkJCWNpbj4+YVtpXTsKCQkJYVtpXS0tOwoJCQl2W2ldLnB1c2hfYmFjayhhW2ldKTsKCQkJbTFbYVtpXV0rKzsKCQl9CgkJbGwgY1tuXTsKCQlzZXQ8cGFpcjxsbCxsbD4+IHMxOwoJCWZvcihsbCBpPTA7aTxuO2krKykKCQl7CgkJCWNpbj4+Y1tpXTsKCQkJczEuaW5zZXJ0KG1ha2VfcGFpcihjW2ldLGkpKTsKCQl9CgkJcXVldWU8bGw+IHE7CgkJZm9yKGxsIGk9MDtpPG47aSsrKQoJCXsKCQkJaWYobTFbaV09PTApCgkJCXsKCQkJCXEucHVzaChpKTsKCQkJfQoJCX0KCQlsbCBvdXQ9MDsKCQl3aGlsZShxLnNpemUoKSkKCQl7CgkJCWF1dG8gaXQgPSBxLmZyb250KCk7CgkJCXEucG9wKCk7CgkJCW91dCs9KDIqY1tpdF0pOwoJCQltMVthW2l0XV0tLTsKCQkJaWYobTFbYVtpdF1dPT0wKQoJCQl7CgkJCQlxLnB1c2goYVtpdF0pOwoJCQl9CgkJCWF1dG8gaXQxID0gczEuZmluZChtYWtlX3BhaXIoY1tpdF0saXQpKTsKCQkJczEuZXJhc2UoaXQxKTsKCQl9CgkJZm9yKGF1dG8gaTpzMSkKCQkJCQl7CgkJCQkJCWNvdXQ8PGkuZmlyc3Q8PCIgIjw8aS5zZWNvbmQ8PCJcbiI7CgkJCQkJfQoJCXdoaWxlKHMxLnNpemUoKSkKCQl7CgkJCWF1dG8gaXQgPXMxLmJlZ2luKCk7CgkJCXBhaXI8bGwsbGw+IHAgPSgqaXQpOwoJCQlzMS5lcmFzZShpdCk7CgkJCWxsIHNzID0gYVtwLnNlY29uZF07CgkJCXdoaWxlKHNzIT1wLnNlY29uZCkKCQkJewoJCQkJb3V0Kz0oMipjW3NzXSk7CgkJCQlhdXRvIGl0MSA9IHMxLmZpbmQobWFrZV9wYWlyKGNbc3NdLHNzKSk7CgkJCQlzMS5lcmFzZShpdDEpOwoJCQkJc3MgPSBhW3NzXTsKCQkJCQoJCQl9CgkJCQoJCQlvdXQrPXAuZmlyc3Q7CgkJfQoJCWNvdXQ8PG91dDw8IlxuIjsKCX0KCXJldHVybiAwOwp9
MQozCjIgMyAyCjYgNiAxCjgKMiAxIDQgMyA2IDUgOCA3CjEgMiAxIDIgMiAxIDIgMQo1CjIgMSAxIDEgMQo5IDggMSAxIDEKMgoyIDEKMTAwMDAwMDAwMCA5OTk5OTk5OTkKNwoyIDMgMiA2IDQgNCAzCjEgMiAzIDQgNSA2IDcKNQozIDQgNCAxIDMKMyA0IDUgNiA3CjMKMiAxIDEKMSAyIDIKNAoyIDEgNCAxCjEgMSAxIDEK
1
3
2 3 2
6 6 1
8
2 1 4 3 6 5 8 7
1 2 1 2 2 1 2 1
5
2 1 1 1 1
9 8 1 1 1
2
2 1
1000000000 999999999
7
2 3 2 6 4 4 3
1 2 3 4 5 6 7
5
3 4 4 1 3
3 4 5 6 7
3
2 1 1
1 2 2
4
2 1 4 1
1 1 1 1