【Mail.Ru Cup 2018 Round 2 A】 Metro
【链接】 我是链接,点我呀:)
【题意】
【题解】
1:一直往右走的情况。 2:中间某个地方中转 (不会出现超过1次的转弯。 (如果超过了和1次是等价的【代码】
#include <bits/stdc++.h>
#define ll long long
#define lson l,mid,rt<<1
#define rson mid+1,r,rt<<1|1
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
using namespace std;
const int N = 1000;
int n,s;
int a[N+10],b[N+10];
int can[N+10],can2[N+10];
int main(){
scanf("%d%d",&n,&s);
rep1(i,1,n) scanf("%d",&a[i]);
rep1(i,1,n) scanf("%d",&b[i]);
if (a[1]==0){
puts("No");
return 0;
}
rep1(i,1,n)
if (a[i]==1){
can[i] = 1;
if (b[i]==1){
rep1(j,1,i-1)
if (b[j]==1)
can[j] = 1;
}
}
if (can[s]){
puts("Yes");
}else{
puts("No");
}
return 0;
}