PTA------->大熊小熊掰玉米

2024-03-31 12:44
文章标签 玉米 pta 小熊 大熊

本文主要是介绍PTA------->大熊小熊掰玉米,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一,题目:

有大小两头熊,找了一个好天气,相约各背着一个筐子去掰玉米。

熊会有以下两种动作:

  • 掰一个玉米棒子扔进自己的筐子
  • 嫌筐子太重,从自己的筐里拿出一个玉米棒子扔进另一头熊的筐子

注意:如果筐子满了,那么若再向它扔一个玉米棒子,这个玉米棒子将掉到地上。如果筐子是空的,那么从这个筐子里拿玉米,显然什么也拿不到。

假设每个玉米棒上的玉米粒数量都不会变化(不会被磕掉),请根据给定的两头熊掰玉米的过程,计算最终两头熊筐子里的玉米棒上的玉米粒数量。

p.s. 呃…… 大家见过玉米棒子吧? 为避免题意理解偏差,提供一张图片:
 

1.png


这张图片显示了3个玉米棒子,每个棒子上有若干粒玉米。

输入格式:

第一行给出两个不超过50的正整数,分别是大熊、小熊的筐子所能容纳玉米棒子的最大数量。(筐子的大小和熊的大小没有关联)
接下来有若干行:每行先给出一个范围是[-2,2]的整数C,并且:
C12,则在这一行再给出一个不超过1000的正整数m,表示大熊(C=1)或小熊(C=2)掰了一个有m粒玉米的棒子扔进自己的筐子,Cm之间以一个空格分隔。
C-1-2,则表示大熊(C=-1)或小熊(C=-2)从自己的筐子拿一个玉米棒扔到另一头熊的筐子里。
C0,表示掰玉米过程结束,这是最后一行输入。

注意,每行输入的末尾是有换行符的。

输出格式:

在一行中输出掰玉米结束后,大熊和小熊各自筐子里玉米棒子上的玉米粒总数量,中间以一个空格分隔,行末有换行符。

输入样例:

4 5
1 1
1 2
-1
2 4
-1
2 8
-1
1 16
1 32
2 64
-1
1 128
2 256
-2
0

输出样例:

208 15

 二,思路:用个栈直接模拟胸大和熊二的篮筐情况。

三,代码:

#include <iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<set>
#include<stack>
#include<queue>
#include<map>
using namespace std;const int N=15,M=1e9+7;typedef  long long ll;
typedef pair<int,int> pii;int arr[N];
int brr[N];void Solved() {int a,b;cin>>a>>b;stack<int> s1,s2;int op;while(cin>>op){if(op==0) break;else if(op>0){int x;cin>>x;if(op==1){if(s1.size()<a){s1.push(x);}}else{if(s2.size()<b){s2.push(x);}}}else{if(op==-1&&!s1.empty()){int t=s1.top();s1.pop();if(s2.size()<b) s2.push(t);}else if(op==-2&&!s2.empty()){int t=s2.top();s2.pop();if(s1.size()<a) s1.push(t);}}}int sum1=0;while(!s1.empty()) {sum1+=s1.top();s1.pop();}cout<<sum1<<" ";int sum2=0;while(!s2.empty()) {sum2+=s2.top();s2.pop();}cout<<sum2<<endl;
}int main()
{int t;//cin>>t;t=1;while(t--) {Solved();}return 0;
}

这篇关于PTA------->大熊小熊掰玉米的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/864365

相关文章

PTA求一批整数中出现最多的个位数字

作者 徐镜春 单位 浙江大学 给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字。例如给定3个整数1234、2345、3456,其中出现最多次数的数字是3和4,均出现了3次。 输入格式: 输入在第1行中给出正整数N(≤1000),在第二行中给出N个不超过整型范围的非负整数,数字间以空格分隔。 输出格式: 在一行中按格式“M: n1 n2 ...”输出,其中M是最大次数,n

pta-2024年秋面向对象程序设计实验一-java

文章申明:作者也为初学者,解答仅供参考,不一定是最优解; 一:7-1 sdut-sel-2 汽车超速罚款(选择结构) 答案: import java.util.Scanner;         public class Main { public static void main(String[] arg){         Scanner sc=new Scanner(System

PTA L1-037 A除以B

L1-037 A除以B(10分) 真的是简单题哈 —— 给定两个绝对值不超过100的整数A和B,要求你按照“A/B=商”的格式输出结果。 输入格式: 输入在第一行给出两个整数A和B(−100≤A,B≤100),数字间以空格分隔。 输出格式: 在一行中输出结果:如果分母是正数,则输出“A/B=商”;如果分母是负数,则要用括号把分母括起来输出;如果分母为零,则输出的商应为Error。输出的商

[数据集][目标检测]玉米病害检测数据集VOC+YOLO格式6000张4类别

数据集格式:Pascal VOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):6000 标注数量(xml文件个数):6000 标注数量(txt文件个数):6000 标注类别数:4 标注类别名称:["Corn","Damaged Corn","Maize","Plaga"] 每个类别标注的框数:

PTA - C语言接口题集

目录 6-1 计算两个复数之积(结构体函数)6-2 字符定位(返回字符的地址,指针)6-3 求结构体平均成绩(变量名(数组名)用.;指针(带有*)用->)6-4 删除字符串中数字字符6-5 使用函数找出数组中的最大值6-6 在数组中查找指定元素6-7 按等级统计学生成绩6-8 学生成绩比高低6-11 mystrcpy6-12 mystrcat6-13 mystrcmp6-14 求正整数的因子

PTA - C语言接口题集2

目录 6-24 空间两点间的距离6-25 还书有多难6-26 计算两数的和与差6-27 拆分实数的整数与小数部分6-28 使用函数实现字符串部分复制6-29 判断回文字符串6-30 字符串的连接6-31 指定位置输出字符串6-32 利用指针找最大值6-33 求一组数中的最大值、最小值和平均值6-34 使用函数找出数组中的最大值6-35 每个单词的首字母改为大写6-36 输入单词并排序输出6-

PTA - C语言暑假题集5

目录 7-84 求整数序列中出现次数最多的数7-85 统计字符出现次数7-86 古风排版7-87 散步7-88 小鱼的航程7-89 成绩进步7-90 计算长方形的周长和面积7-91 求一元二次方程的根7-92 找相同字符7-93 连续整数相加7-94 数组逆序7-95 第n小的质数7-96 连续非素数的最大长度7-97 螺旋加密7-98 小X数字母7-99 质数7-100 打印星号三角形7-

PTA输出整数各位数字

作者 颜晖 单位 浙大城市学院 本题要求编写程序,对输入的一个整数,从高位开始逐位分割并输出它的各位数字。 输入格式: 输入在一行中给出一个长整型范围内的非负整数。 输出格式: 从高位开始逐位输出该整数的各位数字,每个数字后面有一个空格。 输入样例: 123456 输出样例: 1 2 3 4 5 6  解题思路:输入要求用长整型long int,对于这种分割数字的要求,我

PTA - C语言国庆题集3

目录 7-41 单词翻转7-42 括号匹配7-43 汉诺塔问题(Hanoi)7-44 判断10的倍数7-45 求5个整数中的最小数7-46 求n个数中的最大值7-47 一批数中最大值最小值7-48 计算平方和7-49 毕达哥拉斯三元组7-50 计算一组x和y7-51 筛法求素数7-52 完美的素数7-53 位运算7-54 头插法创建单链表、遍历链表、删除链表7-55 合并有序数组7-57 英

PTA - C语言国庆题集2

目录 7-21 打妖怪7-22 统计连续高温的最大天数7-23 唱歌比赛打分7-24 找最长的字符串7-25 算龙脉7-26 DNA鉴定7-28 T9键盘7-31 单链表的创建,遍历与销毁7-36 有多少位是7?7-37 选择排序7-38 翻转单词顺序7-39 求因子和最大的数(结构体排序)7-40 按因子和排序(结构体排序) 7-21 打妖怪 话说孙大圣保唐僧西天取经,路上遇到