fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. bool findB(int x, int y, int b[], int m){
  5. for(int i = 0; i < m; i++){
  6. if(x == b[i] || y == b[i]) return true;
  7. }
  8. return false;
  9. }
  10.  
  11. bool f(int n, int m, int x[], int y[]){
  12. bool changed = true;
  13. while(changed) {
  14. changed = false;
  15. for(int i = n - 2; i >= 0; i--){
  16. if(x[i] > x[i+1]){
  17. if(findB(x[i], x[i+1], y, m)){
  18. swap(x[i], x[i+1]);
  19. changed = true;
  20. } else {
  21. return false;
  22. }
  23. }
  24. }
  25. }
  26. return true;
  27. }
  28.  
  29.  
  30. int main(){
  31. int t; cin >> t;
  32. while(t--){
  33. int n, m; cin >> n >> m;
  34. int a[n], b[m];
  35. for (int i = 0; i < n; i++) cin >> a[i];
  36. for (int i = 0; i < m; i++) cin >> b[i];
  37. if(f(n, m, a, b)){
  38. cout << "YES" << endl;
  39. } else {
  40. cout << "NO" << endl;
  41. }
  42. }
  43. return 0;
  44. }
  45.  
Success #stdin #stdout 0.01s 5292KB
stdin
Standard input is empty
stdout
Standard output is empty