아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

농장 탈출

시간 제한1초메모리 제한128 MB

요약
소의 무게가 최대 20개 주어질 때, 십진수 덧셈에서 어느 자리에서도 올림이 생기지 않도록 고른 부분집합 중 가장 큰 것의 크기를 구한다.
난이도

보통10점 중 5점

유형
비트 연산, 완전 탐색, 백트래킹
정답자
아직 제출이 없습니다

문제

소들이 농부 존의 손아귀에서 벗어나려는 대담한 계획을 세웠다. 작은 고무보트를 하나 구했고, 밤의 어둠을 틈타 한 무리의 소가 보트에 올라 농장 경계를 이루는 강을 건너려 한다. 완벽해 보이던 계획이지만, 작은 고무보트가 그리 많은 무게를 버티지 못할 수도 있다는 사실을 소들은 깨닫는다!

NN마리의 소(1≤N≤201 \le N \le 20)는 각각 무게 w1,…,wNw_1, \dots, w_N을 가진다. 어떤 무리가 보트를 가라앉히지 않을 만큼 가벼운지 판단하기 위해, 소들은 그 무리에 속한 모든 소의 무게를 더한다. 그런데 소들은 산수에 몹시 약해서, 무게를 더하는 과정에서 (표준 10진법 덧셈으로) 받아올림이 한 번이라도 생기면 그 무리는 너무 무거워 보트를 탈 수 없다고 결론짓는다. 받아올림 없이 무게를 모두 더할 수 있는 무리만 보트에 탈 만큼 가볍다고 여긴다.

소들이 보트에 탈 수 있다고 믿는 가장 큰 무리의 크기, 즉 받아올림 없이 무게를 모두 더할 수 있는 가장 큰 무리의 크기를 구하라.

입력

  • 첫째 줄: 소의 수 NN (1≤N≤201 \le N \le 20).
  • 둘째 줄부터 N+1N+1째 줄까지: 각 줄에 소 한 마리의 무게가 주어지며, 1 이상 100,000,000 이하의 정수이다.

출력

  • 첫째 줄: 받아올림 없이 무게를 모두 더할 수 있는 가장 큰 무리에 속한 소의 수.

힌트

입력 설명

소는 5마리이며, 무게는 각각 522, 6, 84, 7311, 19이다.

출력 설명

522, 6, 7311 세 무게는 받아올림 없이 더할 수 있다:

   522
     6
+ 7311
------
  7839

예제1

  1. 예제 1

    입력
    5
    522
    6
    84
    7311
    19
    
    예상 출력
    3