CF28A.Bender Problem

普及/提高-

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Robot Bender decided to make Fray a birthday present. He drove n nails and numbered them from 1 to n in some order. Bender decided to make a picture using metal rods. The picture is a closed polyline, which vertices should be nails (in the given order). The segments of the polyline should be parallel to the coordinate axes. Polyline is allowed to have self-intersections. Bender can take a rod and fold it exactly once in any place to form an angle of 90 degrees. Then he can attach the place of the fold to some unoccupied nail and attach two ends of this rod to adjacent nails. A nail is considered unoccupied if there is no rod attached to it (neither by it's end nor the by the fold place). No rod could be used twice. It is not required to use all the rods.

Help Bender to solve this difficult task.

机器人本德决定为弗雷制作一份生日礼物。他钉下了 nn 颗钉子,并以某种顺序将它们编号为 11 至 nn。本德决定用金属杆制作一幅画。这幅画是一条闭合的折线,其顶点必须是这些钉子(按给定顺序)。折线的各线段必须与坐标轴平行。该折线允许自相交。

本德可以取一根金属杆,在任意位置恰好弯折一次,形成一个 90∘90^\circ 的角;然后,他可将弯折处固定在某颗尚未被占用的钉子上,并将该杆的两个端点分别固定在两个相邻的钉子上。一颗钉子被称为“未被占用”,当且仅当没有任何金属杆连接到它(无论是通过端点还是通过弯折处)。每根金属杆最多只能使用一次。并不要求使用全部金属杆。

请帮助本德完成这项艰巨的任务。

输入格式

The first line contains two positive integers n and m (4 ≤ n ≤ 500, 2 ≤ m ≤ 500, n is even) — the amount of nails and the amount of rods. i-th of the following n lines contains a pair of integers, denoting the coordinates of the i-th nail. Nails should be connected in the same order as they are given in the input. The last line contains m integers — the lenghts of the rods. All coordinates do not exceed 104 by absolute value. Lengths of the rods are between 1 and 200 000. No rod can be used twice. It is guaranteed that all segments of the given polyline are parallel to coordinate axes. No three consecutive nails lie on the same line.

第一行包含两个正整数 nn 和 mm(4≤n≤5004 \leq n \leq 500,2≤m≤5002 \leq m \leq 500,且 nn 为偶数)—— 分别表示钉子的数量和杆的数量。接下来的 nn 行中,第 ii 行包含一对整数,表示第 ii 个钉子的坐标。钉子应按输入中给出的顺序依次连接。最后一行包含 mm 个整数——表示各杆的长度。所有坐标的绝对值均不超过 10410^4;杆的长度均在 11 到 200 000200\,000 之间。每根杆至多使用一次。保证给定折线的所有线段均平行于坐标轴。不存在三个连续的钉子共线。

输出格式

If it is impossible to solve Bender's problem, output NO. Otherwise, output YES in the first line, and in the second line output n numbers — i-th of them should be the number of rod, which fold place is attached to the i-th nail, or -1, if there is no such rod.

If there are multiple solutions, print any of them.

如果无法解决本德的问题,则输出 NO。否则,第一行输出 YES,第二行输出 n 个数——其中第 i 个数表示连接到第 i 个钉子的折杆编号;若不存在这样的折杆,则输出 -1。

若存在多个解,输出任意一个即可。

输入输出样例

  • 输入#1

    4 2
    0 0
    0 2
    2 2
    2 0
    4 4

    输出#1

    YES
    1 -1 2 -1
  • 输入#2

    6 3
    0 0
    1 0
    1 1
    2 1
    2 2
    0 2
    3 2 3

    输出#2

    YES
    1 -1 2 -1 3 -1
  • 输入#3

    6 3
    0 0
    1 0
    1 1
    2 1
    2 2
    0 2
    2 2 3

    输出#3

    NO

输入解题思路,AI测评打分。不知道怎么写?

首页