题意简述
若干的序列,长度和不超过$2e5$。请你选择两个序列,从两个序列中恰好各删除一个数,使得两个序列的和相等。如果珂以,输出”Yes”,并输出是从哪两个序列中删除了编号为多少的元素。多解输出任意一个。无解输出”No”。
思路框架
STL的map维护
具体思路
对于每个序列,对于不同的元素,每个都把(序列的和-这个元素值)加入到map中,标记为出现过。如果在标记之前就出现过,由于我们在一个序列里是去重的,所以一定是前面某个序列里的。那就是出现解了。我们把(序列的和-这个元素值)保存下来,直接退出。设其为$k$。
然后,还是在去重过的序列里,看看哪几个元素满足(序列的和-这个元素值)=$k$,输出它所在的序列编号和它在序列中的编号即珂。细节还蛮多的,注意一下。
代码
1 |
|