資源限制
時間限制:1.0s 內存限制:256.0MB
問題描述
有n個人正在飯堂排隊買海北雞飯。每份海北雞飯要25元。奇怪的是,每個人手里只有一張鈔票(每張鈔票的面值為25、50、100元),而且飯堂阿姨一開始沒有任何零錢。請問飯堂阿姨能否給所有人找零(假設飯堂阿姨足夠聰明)
輸入格式
第一行一個整數n,表示排隊的人數。
接下來n個整數a[1],a[2],...,a[n]。a[i]表示第i位學生手里鈔票的價值(i越小,在隊伍里越靠前)
接下來n個整數a[1],a[2],...,a[n]。a[i]表示第i位學生手里鈔票的價值(i越小,在隊伍里越靠前)
輸出格式
輸出YES或者NO
樣例輸入
4
25 25 50 50
25 25 50 50
樣例輸出
YES
樣例輸入
2
25 100
25 100
樣例輸出
NO
樣例輸入
4
25 25 50 100
25 25 50 100
樣例輸出
YES
數據規模和約定
n不超過1000000
需要多種情況的考慮,即25,50和100元的三種情況。
1 #include<iostream> 2 //author:QIANG 3 using namespace std; 4 int main(){ 5 int n,s; 6 cin>>n; 7 int tf=0,f=0; 8 int flag=1; 9 for(int i=0;i<n;i++){ 10 cin>>s; 11 if(flag==1){ 12 if(s==25){ 13 tf++; 14 }else if(s==50){ 15 if(tf>0){ 16 tf--; 17 f++; 18 }else{ 19 flag=0; 20 } 21 }else{ 22 if(f>0){ 23 f--; 24 s=s-50; 25 } 26 if(s==50){ 27 if(tf>0){ 28 tf--; 29 }else{ 30 flag=0; 31 } 32 }else{ 33 if(tf>=3){ 34 tf=tf-3; 35 }else{ 36 flag=0; 37 } 38 } 39 } 40 } 41 } 42 if(flag==1){ 43 cout<<"YES"; 44 }else cout<<"NO"; 45 return 0; 46 }