Logo
(追記) (追記ここまで)

29661번 - Задача о рюкзаке 스페셜 저지다국어

시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 1024 MB0000.000%

문제

Задача о рюкзаке формулируется следующим образом: дано $n$ предметов, $i$-й из которых имеет вес $w_i$ и стоимость $v_i,ドル требуется построить набор предметов максимальной стоимости, чтобы их суммарный вес не превосходил числа $c$ (размеров рюкзака). Известно, что задача о рюкзаке является $NP$-трудной, за время, пропорциональное суммарному весу предметов, задачу можно решить с использованием динамического программирования.

Однако оказывается, что в некоторых случаях задачу о рюкзаке можно решить жадно. Один из таких случаев возникает, когда экземпляр задачи о рюкзаке представляет собой матроид.

Матроидом называется пара $\langle X, {\cal I}\rangle,ドル где $X$ --- некоторое конечное множество, а $\cal I$ --- некоторое семейство подмножеств $X,ドル элементы $\cal I$ называют независимыми. Множество $\cal I$ должно удовлетворять следующим аксиомам:

  1. ${\cal I} \ne \varnothing$;
  2. Если $A \in {\cal I}$ и $B \subset A,ドル то $B \in {\cal I}$;
  3. Если $A, B \in {\cal I}$ и $|A| > |B|,ドル то найдется $x \in A \setminus B,ドル такой что $B \cup \{x\}\in{\cal I}$.

Здесь как $|A|$ обозначено количество предметов в множестве $A$.

В качестве примера матроида можно превести множество ребер неориентированного графа, где множество ребер является независимым, если оно является ациклическим.

Рассмотрим множество предметов с весами $w_1, w_2, \ldots, w_n$. В качестве $X$ выберем эти предметы. Будем называть множество предметов $\{i_1, i_2, \ldots, i_k\}$ независимым, если $w_{i_1}+w_{i_2}+\ldots+w_{i_k} \le c$. Требуется выяснить, образует ли описанная конструкция для заданных $w_1, w_2, \ldots, w_n$ и $c$ матроид.

입력

Первая строка входного файла содержит число $n$ (1ドル \le n \le 50$). Вторая строка содержит $n$ целых чисел $w_1, w_2, \ldots, w_n$ (1ドル \le w_i \le 100$). Третья строка содержит число $c$ ($\max w_i \le c \le \sum w_i$).

출력

Выведите "YES", если множество решений задачи о рюкзаке образует матроид. В противном случае выведите "NO".

Во втором случае на второй строке выведите одно целое число --- номер аксиомы, которая нарушается. Если нарушается вторая или третья аксиома, то на следующих двух строках выведите описания множеств $A$ и $B,ドル для которых утверждение аксиомы не выполняется. Каждое множество описывается количеством предметов в нем, после чего должны следовать номера этих предметов.

제한

예제 입력 1

3
1 2 3
4

예제 출력 1

YES

예제 입력 2

3
3 4 5
7

예제 출력 2

NO
3
2 1 2
1 3

힌트

출처

Olympiad > Russian Olympiad in Informatics > Internet Olympiads in Informatics > 2009-2010 Season > April 10, 2010 E번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /