المپدیا

دانش‌نامه‌ی المپیاد کامپیوتر ایران

ابزار کاربر

ابزار سایت


سوالات المپیاد:دوره ی تابستان:دوره ی ۱۷:عملی:سوال ۱

اعداد متنفّر

به دو عدد ‎$a$‎ و ‎$b$ ‎ از هم متنفر‎ گویند اگر عدد صحیح و مثبت ‎$k$‎ وجود داشته باشد به طوری که ‎$a \times 2^k = b$‎. شما باید برنامه‌ای بنویسید که از بین ‎$n$‎ عدد صحیح و مثبتِ داده شده، تعدادی از آن‌ها را انتخاب کند به طوری که

  • اوّلاً هیچ دو عدد انتخاب شده‌ای، از هم متنفر نباشند؛
  • ثانیاً، حاصل جمع اعداد انتخاب شده، بیشینه باشد.

ورودی

  • در سطر اول ورودی، عدد ‎$n$‎ نوشته شده‌ است.
  • در ‎$n$‎ سطر بعدی، در هر سطر یک عدد صحیح مثبت نوشته شده است.
  • شما باید از بین این ‎$n$‎ عدد، تعدادی را انتخاب کنید به طوری که شرایط گفته شده برقرار شوند.
  • $1 \leq n \leq 5000$‎
  • تمامی اعداد ورودی، صحیح و مثبت بوده و در تایپ ‎int‎ جا می‌شوند.

خروجی

  • در سطر اوّل خروجی تعداد اعداد انتخاب شده (مثلاً ‎$x$‎) را بنویسید.
  • در ‎$x$‎ سطر بعد، اعداد انتخاب شده را به‌ترتیب صعودی چاپ کنید به طوری که در هر سطر دقیقاً یکی از اعداد انتخاب شده نوشته شده باشد.

محدودیت‌ها

  • محدودیت زمان: ۱ ثانیه
  • محدودیت حافظه: ۲۵۶ مگابایت

ورودی و خروجی نمونه

ورودی نمونه خروجی نمونه
4
1
2
3
4
2
3
4

ابزار صفحه