2013-2014 ACM-ICPC, NEERC, Southern Subregional Contest Problem L. Stock Trading Robot 水题
Problem L. Stock Trading Robot
题目连接:
http://www.codeforces.com/gym/100253
Description
CyberTrader is an all-in-one trading solution for investment banks, quantitative hedge funds and
proprietary trading groups. It has only one drawback it is not implemented yet.
You are working on implementing a simple algorithm to buy/sell shares. It should work as follows. Initially
a robot has d dollars and doesn't have any shares. The robot's behaviour is dened by two positive integer
numbers a and b, their role is explained below.
Starting from the second day, every day the robot analyzes a new share price comparing it with the
previous share price. If the price increases the robot buys shares it buys as many shares as it can but
not more than x. Actually, x is not a constant and depends on the number of consecutive increases: x = a
for the rst increase, x = 2a for two increases in a row, and so on, i.e. x = ka for k consecutive increases.
Surely, the robot can buy only non-negative integer number of shares and the number depends on the
money it has and on x.
If the price decreases the robot sells shares it sells as many shares as it has but not more than y.
Actually, y is not a constant and depends on the number of consecutive decreases: y = b for the rst
decrease in a row, y = 2b for two decreases in a row, and so on, i.e. y = kb for k consecutive decreases.
If the price doesn't change the robot does not buy or sell any shares.
Write a program for the robot to simulate the above algorithm.
Input
The rst line of the input contains four positive integers n, d, a and b (1 ≤ n, d ≤ 105
, 1 ≤ a, b ≤ 10),
where n is the number of days to simulate the algorithm. The following line contains sequence of positive
integers p1, p2, . . . , pn (1 ≤ pi ≤ 105
), where pi
is the share price on the i-th day.
It is guaranteed that there will be no overow of the 32-bit signed integer type, so feel free to use type
int (in C++ or Java) to store the number of dollars and shares.
Output
Print the number of dollars and the number of shares the robot will have after n days.
Sample Input
5 10 1 2
1 2 3 4 5
Sample Output
2 3
Hint
题意
自动炒股机器人,在什么价格的时候,会自动买,然后自动卖。
题面给你说买的条件,和卖的条件。
题解:
模拟就好了……
代码
#include <bits/stdc++.h>
using namespace std;
const int N=100010;
int n,a,b,d,p[N];
int main()
{
scanf("%d%d%d%d",&n,&d,&a,&b);
for(int i=0;i<n;i++)
scanf("%d",&p[i]);
int cnt1=0,cnt2=0;
long long ans1=1LL*d,ans2=0;
for(int i=1;i<n;i++)
{
if(p[i]>p[i-1])
{
cnt1++;cnt2=0;
long long tmp=min(1LL*cnt1*a,ans1/p[i]);
ans1-=tmp*p[i];
ans2+=tmp;
}
else
if(p[i]<p[i-1])
{
cnt2++;cnt1=0;
long long tmp=min(1LL*cnt2*b,ans2);
ans1+=tmp*p[i];
ans2-=tmp;
}
else cnt1=0,cnt2=0;
}
cout<<ans1<<" "<<ans2<<endl;
return 0;
}
2013-2014 ACM-ICPC, NEERC, Southern Subregional Contest Problem L. Stock Trading Robot 水题的更多相关文章
- 2018-2019 ICPC, NEERC, Southern Subregional Contest
目录 2018-2019 ICPC, NEERC, Southern Subregional Contest (Codeforces 1070) A.Find a Number(BFS) C.Clou ...
- Codeforces 2018-2019 ICPC, NEERC, Southern Subregional Contest
2018-2019 ICPC, NEERC, Southern Subregional Contest 闲谈: 被操哥和男神带飞的一场ACM,第一把做了这么多题,荣幸成为7题队,虽然比赛的时候频频出锅 ...
- 2018-2019 ICPC, NEERC, Southern Subregional Contest (Online Mirror) Solution
从这里开始 题目列表 瞎扯 Problem A Find a Number Problem B Berkomnadzor Problem C Cloud Computing Problem D Gar ...
- Codeforces1070 2018-2019 ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Preferred)总结
第一次打ACM比赛,和yyf两个人一起搞事情 感觉被两个学长队暴打的好惨啊 然后我一直做傻子题,yyf一直在切神仙题 然后放一波题解(部分) A. Find a Number LINK 题目大意 给你 ...
- codeforce1070 2018-2019 ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Preferred) 题解
秉承ACM团队合作的思想懒,这篇blog只有部分题解,剩余的请前往星感大神Star_Feel的blog食用(表示男神汉克斯更懒不屑于写我们分别代写了下...) C. Cloud Computing 扫 ...
- 2018-2019 ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Preferred)
A. Find a Number 找到一个树,可以被d整除,且数字和为s 记忆化搜索 static class S{ int mod,s; String str; public S(int mod, ...
- 2018.10.20 2018-2019 ICPC,NEERC,Southern Subregional Contest(Online Mirror, ACM-ICPC Rules)
i207M的“怕不是一个小时就要弃疗的flag”并没有生效,这次居然写到了最后,好评=.= 然而可能是退役前和i207M的最后一场比赛了TAT 不过打得真的好爽啊QAQ 最终结果: 看见那几个罚时没, ...
- 2018-2019 ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Preferred) Solution
A. Find a Number Solved By 2017212212083 题意:$找一个最小的n使得n % d == 0 并且 n 的每一位数字加起来之和为s$ 思路: 定义一个二元组$< ...
- 【*2000】【2018-2019 ICPC, NEERC, Southern Subregional Contest C 】Cloud Computing
[链接] 我是链接,点我呀:) [题意] [题解] 我们可以很容易知道区间的每个位置有哪些安排可以用. 显然 我们优先用那些花费的钱比较少的租用cpu方案. 但一个方案可供租用的cpu有限. 我们可以 ...
随机推荐
- myBatis 3.2.7 如何打印 sql
该文中使用的log框架为logback myBatis3.0.6左右的版本时 打印sql的时候只需要配置如下属性: <logger name="java.sql.Connection& ...
- SQL Server 基础之《学生表-教师表-课程表-选课表》(二)
表结构 --学生表tblStudent(编号StuId.姓名StuName.年龄StuAge.性别StuSex) --课程表tblCourse(课程编号CourseId.课程名称CourseName. ...
- CSS图片下面产生间隙的6种解决方案
CSS图片下面产生间隙的6种解决方案 在进行页面的DIV+CSS排版时,遇到IE6(当然有时Firefox下也会偶遇)浏览器中的图片元素img下出现多余空白的问题绝对是常见的对於 该问题的解决方法也是 ...
- C - 青蛙的约会 POJ - 1061 (扩展欧几里得)
题目链接:https://cn.vjudge.net/contest/276376#problem/C 题目大意:中文题目. 具体思路:扩展gcd,具体证明过程看图片(就这麽个题我搞了一天,,,). ...
- git 修改已提交的注释
在git中,其commit提供了一个--amend参数,可以修改最后一次提交的信息 修改最后一次提交注释 git commit --amend 然后在出来的编辑界面,直接编辑注释的信息,保存退出 gi ...
- linux笔记_day08
1.文件权限管理 1)chown:改变文件属主(只有管理员才能使用这个命令)(change owner) chown USERNAME file... -R :修改目录以及内部文件的属主 --refe ...
- Virut.ce-感染型病毒分析报告
1.样本概况 病毒名称 Virus.Win32.Virut.ce MD5 6A500B42FC27CC5546079138370C492F 文件大小 131 KB (134,144 字节) 壳信息 无 ...
- 纠正几个NANDFLASH很容易犯的错误【转】
转自:https://blog.csdn.net/pengrui18/article/details/32337297 今天在看别人如何根据物理地址计算NANDFLASH的列地址(column add ...
- 【Unity_UWP】Unity 工程发布win10 UWP 时的本地文件读取 (下篇)
Universal Windows Platform(UWP)是微软Windows10专用的通用应用平台,其目的在于在统一操作系统下控制所有智能电子设备. 自从Unity 5.2之后,配合VS 201 ...
- android 跳转到应用通知设置界面的示例
4.4以下并没有提过从app跳转到应用通知设置页面的Action,可考虑跳转到应用详情页面,下面是直接跳转到应用通知设置的代码: if (android.os.Build.VERSION.SDK_IN ...