AT_utpc2025_n.Numerical Error

通过率:0%

AC君温馨提醒

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

题目描述

给定一个长度为 NN 的正整数序列 A=(A1,A2,…,AN)A=(A_1,A_2,\ldots,A_N)。

请判断是否存在 {1,2,…,N}\lbrace 1,2,\ldots,N \rbrace 的两个子集 X,YX,Y ,使得它们满足以下所有条件:

  • 0<∣X∣=∣Y∣0 < |X|=|Y|
  • X,YX,Y 互不相同
  • 令 sX=∑x∈X1Ax, sY=∑y∈Y1Ays_X = \sum_{x \in X} \frac1{A_x},\ s_Y = \sum_{y \in Y} \frac1{A_y} ,要求 ∣sX−sY∣≤10−5|s_X-s_Y| \le 10^{-5} 成立。

如果存在满足条件的 X,YX,Y,请给出其中一组;否则请输出 No。

输入格式

输入通过标准输入给出,格式如下:

NN A1A_1 A2A_2 …\ldots ANA_N

输出格式

如果不存在满足条件的 X,YX,Y,输出 No。

如果存在,设 M=∣X∣=∣Y∣M=|X|=|Y|,将 XX 的元素升序排列为 X1,X2,…,XMX_1,X_2,\ldots,X_{M},将 YY 的元素升序排列为 Y1,Y2,…,YMY_1,Y_2,\ldots,Y_{M},按如下格式输出:

Yes MM X1X_1 X2X_2 …\ldots XMX_M Y1Y_1 Y2Y_2 …\ldots YMY_M

如果存在多组满足条件的 X,YX,Y,输出其中任意一组均可。

输入输出样例

  • 输入#1

    10
    31 41 59 26 53 58 97 93 23 84

    输出#1

    Yes
    2
    1 3
    4 8
  • 输入#2

    7
    2 3 5 7 11 13 17

    输出#2

    No
  • 输入#3

    8
    123 456 789 314 159 265 271 828

    输出#3

    Yes
    3
    4 5 7
    1 3 6

说明/提示

样例解释 1

sX=131+159=0.04920721705…,s_X=\frac1{31}+\frac1{59}=0.04920721705\ldots,

sY=126+193=0.04921422663…s_Y=\frac1{26}+\frac1{93}=0.04921422663\ldots

因此 ∣sX−sY∣≤10−5|s_X-s_Y| \le 10^{-5} 成立。

数据范围

  • 所有输入均为整数
  • 2≤N≤10002\le N\le 1000
  • 1≤Ai≤1051\le A_i \le 10^5

由 ChatGPT 5 翻译

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

首页