必威体育Betway必威体育官网
当前位置:首页 > IT技术

[编程题]香槟塔

时间:2019-10-30 16:13:21来源:IT技术作者:seo实验室小编阅读:83次「手机版」
 

香槟塔

时间限制:1秒

空间限制:262144K

节日到啦,牛牛和妞妞邀请了好多客人来家里做客。

他们摆出了一座高高的香槟塔,牛牛负责听妞妞指挥,往香槟塔里倒香槟。

香槟塔有个很优雅的视觉效果就是如果这一层的香槟满了,就会从边缘处往下一层流去。

妞妞会发出两种指令,指令一是往第x层塔内倒体积为v的香槟,指令二是询问第k层塔香槟的体积为多少。

告诉你香槟塔每层香槟塔的初始容量,你能帮牛牛快速回答妞妞的询问吗?

输入描述:

第一行为两个整数n,m。表示香槟塔的总层数和指令条数。
第二行为n个整数ai,表示每层香槟塔的初始容量。

第三行到第2+m行有两种输入,一种输入是“2 x v”表示往第x层倒入体积为v的香槟;另一种输入是“1 k”表示询问第k层当前有多少香槟。

1 <= n, m <= 1000。

1 <= n ,m <= 200000,1 <= ai ,v <= 1000000000。

输出描述:

对于每个询问,输出一个整数,表示第k层香槟的容量。

输入例子1:

1 2
8
2 1 9
1 1

输出例子1:

8

输入例子2:

5 4
1 2 2 10 1
1 3
2 2 5
2 4 3
1 4

输出例子2:

0
4
#include <iOStream>
#include <vector>
using namespace std;
int main() {
    int n,m;
    cin>>n>>m;
    int cap[n];
    vector<int>temp(n,0);
    for(int i=0;i<n;i++)
        cin>>cap[i];
    int order,x,v;
    while(m--){
        cin>>order;
        if(order==1){
            cin>>x;
            cout<<temp[x-1]<<endl;
        }
        else{
            cin>>x>>v;
            while(v&&x<=n){
                if(temp[x-1]+v<=cap[x-1]){
                    temp[x-1]+=v;
                    v=0;
                }
                else{
                    v=temp[x-1]+v-cap[x-1];
                    temp[x-1]=cap[x-1];
                    x++;
                }
            }
        }
    }
}

文章最后发布于: 2019-08-02 18:50:30

相关阅读

递归 解决汉诺塔问题(栈应用)

汉诺塔问题的来源及什么是汉诺塔问题 相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏。该游戏是在一块铜板装置上,有三根杆

游戏:杀戮尖塔(Slay the spire)mod--拉格朗·月

This is a mod for SlayTheSpire!这是一个杀戮尖塔的MOD!角色名称:拉格朗·月Now, I am developing.目前正在开发中。GitHub源码: ht

聊聊产品中的心理学之“罗森塔尔效应”

罗森塔尔效应指的是当你以积极的期望去对待一件事物时,这件事物本身也会朝着越来越积极的方向发展。本文就结合案例来看看,在哪些产

4个角度,和你聊聊金字塔原理

金字塔工具是产品人和营销人必备的思维工具之一,能够使你的思考、表达和思维都变得既有逻辑又有条理。什么是金字塔原理?如何使用金

宝塔如何还原网站

首先肯定需要将域名解析到服务器 1.解压备份安装包 2.宝塔创建站点和数据库(数据库的密码必须一样 如果不同 到WP-Config文件修

分享到:

栏目导航

推荐阅读

热门阅读