codeforces #202(div2) A

有n个人去看买票,每张票25元,顾客的钱有3种,25 50 100 ,在不改变的队列以及售票员手中开始没有钱的情况下,能否使得所有人都能买到票

模拟就行了

#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+5;
typedef long long ll;
int d[maxn];

int main(){
    int n,cnt1=0,cnt2=0;
    
    cin>>n;
    for(int i=0;i<n;i++)cin>>d[i];
    //sort(d,d+n);
    
    bool flag=1;
    
    for(int i=0;i<n;i++){
        if(d[i]==25)cnt1++;
        else if(d[i]==50){
            if(cnt1==0){
                flag=0;break;
            }
            cnt2++;cnt1--;
        }
        else{
            if(cnt2>=1&&cnt1>=1)cnt2--,cnt1--;
            else if(cnt1>=3)cnt1-=3;
            else{
                flag=0;break;
            }
        }
    }
    
    if(flag)puts("YES");
    else puts("NO");
    return 0;
}
View Code
原文地址:https://www.cnblogs.com/jihe/p/6574637.html