● Codeforces Round #202 (Div. 2) - A. Cinema Line
يكشنبه, ۷ مهر ۱۳۹۲، ۰۹:۴۸ ب.ظ
فیلم جدید "Die Hard" تازه در سینما اکران شده است. جلوی بلیت فروشی سینما، n نفر برای خرید بلیت صف بسته اند، هر فرد یکی از سه مقدار 25 یا 50 یا 100 دلاری پول دارد و هزینه ی بلیت 25 دلار است. آیا بلیت فروش میتواند به هر نفر یک بلیت بفروشد و باقیمانده ی پولش را نیز پس دهد؟ (او در ابتدا هیچ پولی در دخل ندارد و بنابراین ترتیب افراد مهم است)
input
4
25 25 25 100
output
YES
input
2
50 25
output
NO
input
2
25 50
output
YES
ورودی:
خط اوّل شامل یک عدد صحیح مثبت n در بازه ی 1 تا 105 است. (تعداد کسانی که در صف بلیت اند) و بعد از آن n ورودی در یک خط داده می شود (یکی از اعداد 25 یا 50 یا 100) که هر عدد i ام مقدار پولی است که نفر i ام برای بلیت پرداخت کرده است.
خروجی:
در صورتی که فروشنده ی بلیت می تواند باقیمانده ی پول هر کس را به او برگرداند، عبارت YES و در غیر اینصورت عبارت NO را به عنوان خروجی چاپ کنید.
// A Drop of the Programming Sea - adops.blog.ir #include <iostream> using namespace std; int main() { int n; cin >> n; int count25=0, count50=0, count100=0; for(int i=0; i<n; i++) { int num; cin >> num; if(num==25) count25++; else if(num==50) if(count25>0) { count25--; count50++; } else { cout << "NO"; return 0; } else { if(count50>0&&count25>0) { count100++; count50--; count25--; } else if(count25>=3) { count25-=3; count100++; } else { cout<<"NO"; return 0; } } } cout << "YES"; }