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有限. 我们可以 ...
随机推荐
- HDU 1524 树上无环博弈 暴力SG
一个拓扑结构的图,给定n个棋的位置,每次可以沿边走,不能操作者输. 已经给出了拓扑图了,对于每个棋子找一遍SG最后SG和就行了. /** @Date : 2017-10-13 20:08:45 * @ ...
- Git 操作指南
http://blog.csdn.net/troy__/article/details/40082657
- JavaScript执行优先顺序
js在html中的加载执行顺序 1.加载顺序:引入标记<script />的出现顺序, 页面上的Javascript代码是HTML文档的一部分,所以Javascript在页面装载时执行的顺 ...
- HTML5自定义data属性
可能大家在使用jquery mobile时,经常会看到data-role.data-theme等的使用,比如:通过如下代码即可实现页眉的效果: [html] <div data-role=&qu ...
- TED_Topic8:How to control someone else's arm with your brain
By Greg Gage (Neuroscientist) Greg Gage is on a mission to make brain science accessible to all. In ...
- Xcode多种Build Configuration配置使用
Build Configuration? Xcode默认会有2个编译模式,一个是Debug,一个是Release.Release下不能调试程序,编译时有做编译优化,会比用Debug打包出来的运行快,另 ...
- python中的__call__
如果python中的一个类定义了 __call__ 方法,那么这个类它的实例就可以作为函数调用,也就是实现了 () 运算符,即可调用对象协议 下面是一个简单的例子: class TmpTest: de ...
- 第9月第30天 MVP
1. import UIKit struct Person { // Model let firstName: String let lastName: String } protocol Greet ...
- 【webService客户端】webservice客户端工具
public static Object invokeWebService(String namespaces,String url, String method, Object[] params, ...
- 20165230 2017-2018-2《Java程序设计》课程总结
20165230 2017-2018-2<Java程序设计>课程总结 一.作业链接汇总 每周作业链接 预备作业1:我期望的师生关系 预备作业2:做中学learning by doing个人 ...