fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define lli long long int
  4. #define pb push_back
  5. const lli mod=1e9+7;
  6. const lli mod1=998244353;
  7. #define fi first
  8. #define se second
  9. // #include <boost/multiprecision/cpp_int.hpp>
  10. // using namespace boost::multiprecision;
  11. // #include <ext/pb_ds/assoc_container.hpp>
  12. // #include <ext/pb_ds/tree_policy.hpp>
  13. // using namespace __gnu_pbds;
  14. // #define ordered_set tree<lli, null_type,less<lli>, rb_tree_tag,tree_order_statistics_node_update>
  15. /*
  16. lli power(lli a, lli b) {
  17.   lli res = 1;
  18.   while (b > 0) {
  19.   if (b & 1)
  20.   res = res * a;
  21.   a = a * a;
  22.   b >>= 1;
  23.   }
  24.   return res;
  25. }
  26. lli powermod(lli a, lli b)
  27. {
  28.   lli res = 1;
  29.   while (b > 0) {
  30.   if (b & 1)
  31.   res = ((res%mod)*(a%mod))%mod;
  32.   a = (a * a)%mod;
  33.   b >>= 1;
  34.   }
  35.   return res;
  36. }*/
  37. const lli N=100001;
  38. bool vis[N]={false};
  39. lli cnt[N]={0},cnt1[N]={0};
  40. vector<lli> v[N];
  41. lli po[N]={0};
  42. int main()
  43. {
  44. //ios_base::sync_with_stdio(false);
  45. //cin.tie(NULL);
  46. lli T;T=1;
  47. cin>>T;
  48. while(T--)
  49. {
  50. lli n,m,i,j;
  51. cin>>n>>m;
  52. lli a[n],b[n],c[m];
  53. for(i=0;i<n;i++)
  54. {
  55. cin>>a[i];
  56. }
  57. for(i=0;i<n;i++)
  58. {
  59. cin>>b[i];
  60. vis[b[i]]=true;
  61. }
  62. for(i=0;i<m;i++)
  63. {
  64. cin>>c[i];
  65. cnt[c[i]]--;
  66. }
  67. if(vis[c[m-1]]==false)
  68. {
  69. cout<<"NO\n";
  70. for(i=0;i<n;i++)
  71. vis[b[i]]=false;
  72. for(i=0;i<=n;i++)
  73. cnt[i]=cnt1[i]=po[i]=0;
  74. for(i=0;i<n;i++)
  75. {
  76. v[b[i]].clear();
  77. }
  78. continue;
  79. }
  80. for(i=0;i<n;i++)
  81. {
  82. if(a[i]!=b[i])
  83. {
  84. cnt[b[i]]++;
  85. v[b[i]].pb(i+1);
  86. }
  87. }
  88. lli flag=0;
  89. for(i=1;i<=n;i++)
  90. {
  91. if(cnt[i]>0)
  92. flag=1;
  93. }
  94. if(flag)
  95. {
  96. cout<<"NO\n";
  97. for(i=0;i<n;i++)
  98. vis[b[i]]=false;
  99. for(i=0;i<=n;i++)
  100. cnt[i]=cnt1[i]=po[i]=0;
  101. for(i=0;i<n;i++)
  102. {
  103. v[b[i]].clear();
  104. }
  105. continue;
  106. }
  107. lli ans=-1;
  108. cout<<"YES\n";
  109. for(i=0;i<n;i++)
  110. {
  111. if(b[i]==c[m-1])
  112. {ans=i+1;break;}
  113. }
  114. for(i=0;i<m-1;i++)
  115. {
  116. if(v[c[i]].empty())
  117. {
  118. cout<<ans<<" ";
  119. }
  120. else
  121. {
  122. cout<<v[c[i]].back()<<" ";
  123. v[c[i]].pop_back();
  124. }
  125. }
  126. cout<<ans<<"\n";
  127. for(i=0;i<n;i++)
  128. vis[b[i]]=false;
  129. for(i=0;i<=n;i++)
  130. cnt[i]=cnt1[i]=po[i]=0;
  131. for(i=0;i<n;i++)
  132. {
  133. v[b[i]].clear();
  134. }
  135. }
  136. return 0;
  137. }
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp:148:1: error: stray ‘\302’ in program
  
 ^
prog.cpp:148:2: error: stray ‘\240’ in program
  
  ^
stdout
Standard output is empty