Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- #define ll long long
- #define ps(x,y) fixed<<setprecision(y)<<x
- #define w(t) int x;cin>>x;while(x--)
- #define pi 2*acos(0.0)
- #define bg begin()
- #define ed end()
- #define all(x) x.begin(),x.end()
- #define sortarr(x) sort(x,x+arrsize(x))
- #define arrsize(x) sizeof(x)/sizeof(x[0])
- #define sortall(x) sort(all(x))
- #define formn(m,n) for(m;m<=n;m++)
- #define el endl
- #define pb push_back
- #define vi vector<ll>
- #define vs vector<string>
- #define REP(i,a,b) for (int i=a;i<=b;i++)
- #define sq(a) (a)*(a)
- //solution
- int check_val(ll arr[],ll m,ll sub){
- int flag=0;
- REP(i,0,m-1){
- if(arr[i]==sub){
- flag=1;
- break;
- }
- }
- return flag;
- }
- int check_order(ll arr[],ll m,ll a,ll b){
- int flag=0,pa,pb;
- REP(i,0,m-1){
- if(arr[i]==a){
- pa = i;
- }if(arr[i]==b){
- pb=i;
- }
- }
- if(pb>pa){
- flag =1;
- }
- return flag;
- }
- int solve(){
- ll n,m,c=0;
- cin>>n>>m;
- ll arr[n],sub[m];
- REP(i,0,n-1){
- cin>>arr[i];
- }
- REP(i,0,m-1){
- cin>>sub[i];
- }
- REP(i,0,m-1){
- if(!check_val(arr,n,sub[i])){
- cout<<"NO";
- c=1;
- break;
- }
- }
- if(c==0){
- REP(i,0,m-2){
- if(!check_order(arr,n,sub[i],sub[i+1])){
- c=1;
- cout<<"NO"<<endl;
- break;
- }
- }
- if(c==0){
- cout<<"YES"<<endl;
- }
- }
- return 0;
- }
- //end solution
- int main(){
- solve();
- }
Advertisement
Add Comment
Please, Sign In to add comment