C - 0jk奔现
题目描述
Ojk是一个很帅气的程序员,他准备去找网恋对象奔现。但这并不像听起来那么容易,Ojk现在面临的问题是找到最便宜的方式去对象的城市。Ojk知道 $n$ 个机场。所有的机场都位于一条直线上。每个机场都有唯一的编号,从 $1$ 到 $n$
Ojk的家位于编号为 $a$ 的机场旁边,对象所在的城市位于编号为$b$的机场旁边。Ojk的家和对象所在的城市有可能位于同一个机场附近。为了去找对象,Ojk可以在任意一对机场之间飞行任意次数,但他必须从机场$a$开始,在机场$b$结束。每个机场属于两家公司中的一家。如果两个机场属于同一家公司,则从机场$i$到机场$j$的飞行成本为零,如果两个机场属于不同的公司,则为$|i−j|$。
求Ojk找到对象的最低费用。
输入格式
第一行包含三个整数 $n$ , $a$ , $b$ — 机场的数量,Ojk开始他的路线的机场编号和他要到达的机场编号。
第二行包含长度为 $n$ 的字符串,仅由字符 $0$ 和 $1$ 组成。如果该字符串中的第 $i$ 个字符为 $0$ ,则第 $i$ 个机场属于第一家公司,否则属于第二家公司。
输出格式
$1$个整数—— Ojk找到对象的最低费用。
样例
样例输入
4 1 4
1010
样例输出
1
思路
查询ojk所在的机场是否和对象所在的机场是同一家公司,若是则输出 $0$ ,否则输出 $0$
我的码码
#include<iostream>
#include<cstring>
using namespace std;
const int N = 1e5 + 10;
char place[N];
int main()
{
int n, a, b;
cin >> n >> a >> b;
for(int i = 1; i <= n; i++)
cin >> place[i];
if(place[a] == place[b])
cout << 0 << endl;
else
cout << 1 << endl;
return 0;
}