Educational Codeforces Round 47 (Rated for Div. 2) A - Game Shopping(水题)

本文介绍了一个简单的模拟算法问题,即如何使用有限的票据购买尽可能多的游戏。通过遍历游戏列表并检查当前票据是否足够购买当前游戏来实现算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原题链接:传送门

题意:商店里有n个游戏,Maxim有一个钱包,钱包里有m张票据。游戏从左到右放着,Maxim试着用钱包里第一张票据按游戏摆放顺序购买每一款游戏。

这道题就是一个模拟水题,需要注意的是当且仅当他钱包中的第一张票据能够买走他当前位置摆放的游戏时,他才会将这张票据花掉,下一张票据才会变成钱包里的第一张票据。


#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int a[1005],c[1005];

int main(){
    int n,m;
    scanf("%d%d",&n,&m);
    for(int i=0;i<n;i++){       //游戏价钱 
        scanf("%d",&c[i]);
    }
    for(int i=0;i<m;i++){       //票据 
        scanf("%d",&a[i]);
    }

    int sum = 0;    //购买游戏数 
    int j = 0;      //表示第一张票据 
    for(int i=0;i<n;i++){   
        if(a[j] >= c[i]){       //第一张票据够买当前位置游戏 
            sum ++;
            j ++;
        }
    }
    printf("%d\n",sum);

    return 0;
} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值