#P3575. [POI 2014] DOO-Around the world

    ID: 4412 远端评测题 1000ms 125MiB 尝试: 0 已通过: 0 显示难度省选/NOI− 上传者: 标签>搜索2014倍增POI(波兰)栈

[POI 2014] DOO-Around the world

题目描述

通过几年的努力,Byteasar 最终拿到了飞行员驾驶证。为了庆祝这一事实,他打算买一架飞机并且绕 Byteotia 星球赤道飞行一圈。但不幸的是赤道非常长所以需要中途加几次油。现在已知赤道上面所有飞机场,所有飞机从飞机场起飞降落也可以加油。因为买飞机是个十分重大的决定,Byteasar 决定寻求你的帮助。他将会让你模拟不同的飞行路线。自然这些飞机一次能走的航程是不同的。对于每次模拟,他想要知道最少需要降落多少次(包括最后一次)。需要注意的是起点可以任意选取。

输入格式

第一行包含两个整数 nn 和 ss(2≤n≤1 000 0002\le n\le 1\ 000\ 000,1≤s≤1001\le s\le 100),用一个空格隔开,分别表示赤道上的机场数量和 Byteasar 正在考虑的飞机型号数量。

第二行包含 nn 个正整数 l1,l2,⋯ ,lnl_1,l_2,\cdots,l_n(l1+l2+⋯+ln≤109l_1+l_2+\cdots+l_n\le 10^9),用单个空格隔开,表示赤道上相邻机场之间的距离。

其中 lil_i 表示第 ii 个机场到第 (i+1)(i+1) 个机场的距离(若 i=ni=n,则表示第 nn 个机场到第 11 个机场的距离),单位为千米。

第三行包含 ss 个整数 d1,d2,⋯ ,dsd_1,d_2,\cdots,d_s(1≤di≤l1+l2+⋯+ln1\le d_i\le l_1+l_2+\cdots+l_n),用单个空格隔开。did_i 表示第 ii 种飞机型号的航程,单位为千米,即该飞机在降落加油前最多能飞行的距离。

输出格式

你的程序应向标准输出打印 ss 行:第 ii 行应包含一个整数,即使用第 ii 种飞机沿赤道绕行星 3-SATurn 飞行一圈所需的最少飞行段数(也就是降落次数),可以选择任意机场作为起点;如果该飞机无法完成全程,则输出单词 NIE(波兰语中的“不”)。

6 4
2 2 1 3 3 1
3 2 4 11

4
NIE
3
2