1. 程式人生 > >CodeForces - 1055A Metro (模擬)

CodeForces - 1055A Metro (模擬)

題目大意:

      Bob要到Alice家中參加宴會。 
      Bob住在地鐵線的1號站點,Alice住在s號站點(一共n個站點)。有兩條地鐵列車,第一條從1號站開到n號站,第二條從n號站開到1號站(可以同站換乘,就是可以在在1個地鐵站從正著開的那條線換乘到反著開的那條線)。有一些地鐵站口是不開的,1代表開著,0代表不開。
     問Bob能否到達Alice家、

題解:

     模擬。

    首先如果a[1]是關閉的(沒法上車),或者a[s]b[s]都是關閉的(沒法下車),那麼肯定到不了。

    否則,如果a[s]為1,肯定可以。

    否則就是b[s]為1的情況,只要在s到n之間可以換成那麼就可以了。

#include<bits/stdc++.h>
#include<cstring>
#define ll unsigned long long
using namespace std;
int a[1010];
int b[1010];
int main()
{
    int n,s;
    cin>>n>>s;
    for(int i=1; i<=n; ++i)
        cin>>a[i];
    for(int j=1; j<=n; ++j)
        cin>>b[j];
    if(a[1]==0 || (a[s]==0 && b[s]==0))
        puts("NO");
    else
    {
        if(a[s]==1)
            puts("YES");
        else//b[s]=1
        {
            bool flag=0;
            for(int i=s; i<=n; ++i)
                if(a[i]==1 && b[i]==1)
                    flag=1;
            if(flag)
                puts("YES");
            else puts("NO");
        }
    }
    return 0;
}