1333: 找罪犯
来源:互联网 发布:论文数据库 编辑:程序博客网 时间:2024/06/06 18:05
题目
Description
有n个城市,编号为1到n。城市i到j的距离等于|i-j|。
马克是个警察。他住在一个城市里,他的工作是抓罪犯。对于他说这是很困难的,因为他不知道哪个城市的罪犯。虽然,他知道每个城市最多一个罪犯。
马克使用一种先进仪器BCD(刑事检测器)。BCD会告诉马克,距离马克为0,1,2…的城市分别有多少罪犯,马克可以赶到每个城市,他肯定要有一个刑事犯罪。
当然你知道哪座城市里有罪犯。计算马克使用BCD能抓捕到的罪犯数。
Input
多组输入
输入的第一行包含两个整数n和a(1≤a≤n≤100)城市数量和马克居住的城市。
第二行包含n个整数t1,t2,…,tn(0≤ti≤1)。在第i个城市有ti个罪犯。
Output
输出马克抓捕的罪犯数量。
Sample Input
6 3
1 1 1 0 1 0
5 2
0 0 0 1 0
Sample Output
3
1
HINT
在第一个例子中,有6个城市,BCD会给马克的信息
距离马克0的城市有一个罪犯,马克会确定t3会有罪犯
距离马克1的城市有一个罪犯,马克不确定t2,t4哪座城市有罪犯
距离马克2的城市有两个罪犯,马克会确定t1和t5都会有罪犯
距离更大的城市为0个罪犯
所以第一个例子中输出结果为3,只有t1,t3,t5三个城市确定有罪犯
第二个例子中,BCD会给出只有距离为2的城市有一个罪犯,距离马克为2的城市也只有一个,所以第二个例子输出结果为1
代码块
import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner cn = new Scanner(System.in); while (cn.hasNext()) { int n = cn.nextInt(); int a = cn.nextInt(); int[] t = new int[n]; for (int i = 0; i < n; i++) { t[i] = cn.nextInt(); } int count = 0; if (t[a - 1] > 0) count++; int i = a - 2, j = a; for (;; i--, j++) { if (i < 0 || j >= n) break; if (t[i] + t[j] > 1) { count += 2; } } while (i >= 0) { if (t[i] > 0) count++; i--; } while (j < n) { if (t[j] > 0) count++; j++; } System.out.println(count); } }}
阅读全文
0 0
- 1333: 找罪犯
- 潜罪犯
- 关押罪犯
- 关押罪犯
- 关押罪犯
- 罪犯转移
- 罪犯转移
- 罪犯转移
- 罪犯转移
- 关押罪犯
- 关押罪犯
- 罪犯转移
- 罪犯转移
- 罪犯转移
- 转移罪犯
- 关押罪犯
- 打击罪犯
- 罪犯转移
- 电脑安装多个版本的jdk解决方法
- LeetCode
- mysql远程客户端无法连接,修改配置文件
- tf.sign和tf.reduce_sum
- 【PSOC4】入门学习笔记6——电容触摸滑条控制LED灯
- 1333: 找罪犯
- 未来与AI
- iOS几个小知识点的总结
- cookie乱码问题
- java安全
- Python异常处理
- STC-ISP下载失败的原因小结
- 大牛的博客(学习不止,更新不止)
- 51nod 1451 合法三角形