QOJ.ac

QOJ

حد الوقت: 1 s حد الذاكرة: 256 MB مجموع النقاط: 100

#102. Bootfall

الإحصائيات

Tima ו־$N$ חבריו אוהבים לשחק Bootfall. זהו משחק ספורט ל־$N+1$ שחקנים. לכל שחקן יש עוצמה, המיוצגת במספר שלם חיובי. המשחק כולל $N+1$ סיבובים. בכל סיבוב אחד השחקנים מצלם את הסיבוב בווידאו, ויתר $N$ השחקנים מתחלקים לשתי קבוצות, כך שכל שחקן משויך לאחת הקבוצות ושתי הקבוצות אינן ריקות. עוצמת קבוצה היא סכום העוצמות של כל שחקניה. כל שחקן מצלם בסיבוב אחד בדיוק.

סיבוב נקרא תיקו אם קיימת חלוקה לשתי קבוצות בעלות עוצמה שווה. המשחק כולו נקרא ידידותי אם כל הסיבובים הם תיקו. כל אחד מ־$N$ החברים כבר הודיע ל־Tima מה עוצמתו, וכעת Tima יכול לבחור לעצמו כל ערך עוצמה חוקי.

Tima יודע את העוצמות של כל $N$ השחקנים ורוצה לבחור ערך שעבורו המשחק יוכל להיות ידידותי. עזרו לו למצוא את כל ערכי העוצמה האפשריים.

קלט

השורה הראשונה מכילה מספר שלם חיובי אחד $N$ ($1\le N\le500$), מספר חבריו של Tima. השורה השנייה מכילה $N$ מספרים שלמים חיוביים $a_1,a_2,\ldots,a_N$ ($1\le a_i\le500$; $1\le i\le N$), המופרדים ברווחים; $a_i$ הוא עוצמתו של האדם ה־$i$.

פלט

בשורה הראשונה יש להדפיס מספר שלם אחד $K$, מספר ערכי העוצמה האפשריים עבור Tima. אם אין ערך עוצמה אפשרי, הדפיסו רק 0 (ללא מירכאות). אחרת, בשורה השנייה הדפיסו $K$ מספרים שלמים חיוביים המופרדים ברווחים: כל ערכי העוצמה האפשריים עבור Tima בסדר עולה.

ניקוד

הבעיה כוללת שש תת־משימות:

  1. $1\le N\le12$, $1\le a_i\le200$ לכל $1\le i\le N$. שווה 6 נקודות.
  2. $1\le N\le30$, $1\le a_i\le20$ לכל $1\le i\le N$. שווה 7 נקודות.
  3. $1\le N\le100$, $1\le a_i\le100$ לכל $1\le i\le N$. שווה 15 נקודות.
  4. $1\le N\le270$, $1\le a_i\le270$ לכל $1\le i\le N$. שווה 16 נקודות.
  5. $1\le N\le350$, $1\le a_i\le350$ לכל $1\le i\le N$. שווה 21 נקודות.
  6. $1\le N\le500$, $1\le a_i\le500$ לכל $1\le i\le N$. שווה 35 נקודות.

ניקוד עבור תת־משימה יינתן אם ורק אם הפתרון עובר בהצלחה את כל תת־המשימות הקודמות.

דוגמאות

קלט 1

4
1 3 1 5

פלט 1

1
3

קלט 2

6
3 5 7 11 9 13

פלט 2

4
1 3 17 19

קלט 3

3
2 2 2

פלט 3

0

קלט 4

4
200 200 200 200

פלט 4

2
200 600

הערה

הערות לדוגמה הראשונה.

נראה שאם Tima בוחר עוצמה $3$, המשחק יכול להיות ידידותי.

  • כאשר Tima מצלם, אפשר לחלק את יתר השחקנים כך שהסיבוב יהיה תיקו: $(1,3,1)$ בקבוצה הראשונה ו־$(5)$ בשנייה.
  • כאשר חבר $1$ מצלם, אפשר לחלק את האחרים כך: $(1,5)$ בקבוצה הראשונה ו־$(3,3)$ בשנייה.
  • כאשר חבר $2$ מצלם, אפשר לחלק את האחרים כך: $(1,1,3)$ בקבוצה הראשונה ו־$(5)$ בשנייה.
  • כאשר חבר $3$ מצלם, אפשר לחלק את האחרים כך: $(3,3)$ בקבוצה הראשונה ו־$(1,5)$ בשנייה.
  • כאשר חבר $4$ מצלם, אפשר לחלק את האחרים כך: $(1,3)$ בקבוצה הראשונה ו־$(1,3)$ בשנייה.

אם Tima בוחר עוצמה שאינה $3$, המשחק אינו יכול להיות ידידותי.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.