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 水题的更多相关文章

  1. 2018-2019 ICPC, NEERC, Southern Subregional Contest

    目录 2018-2019 ICPC, NEERC, Southern Subregional Contest (Codeforces 1070) A.Find a Number(BFS) C.Clou ...

  2. Codeforces 2018-2019 ICPC, NEERC, Southern Subregional Contest

    2018-2019 ICPC, NEERC, Southern Subregional Contest 闲谈: 被操哥和男神带飞的一场ACM,第一把做了这么多题,荣幸成为7题队,虽然比赛的时候频频出锅 ...

  3. 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 ...

  4. Codeforces1070 2018-2019 ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Preferred)总结

    第一次打ACM比赛,和yyf两个人一起搞事情 感觉被两个学长队暴打的好惨啊 然后我一直做傻子题,yyf一直在切神仙题 然后放一波题解(部分) A. Find a Number LINK 题目大意 给你 ...

  5. codeforce1070 2018-2019 ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Preferred) 题解

    秉承ACM团队合作的思想懒,这篇blog只有部分题解,剩余的请前往星感大神Star_Feel的blog食用(表示男神汉克斯更懒不屑于写我们分别代写了下...) C. Cloud Computing 扫 ...

  6. 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, ...

  7. 2018.10.20 2018-2019 ICPC,NEERC,Southern Subregional Contest(Online Mirror, ACM-ICPC Rules)

    i207M的“怕不是一个小时就要弃疗的flag”并没有生效,这次居然写到了最后,好评=.= 然而可能是退役前和i207M的最后一场比赛了TAT 不过打得真的好爽啊QAQ 最终结果: 看见那几个罚时没, ...

  8. 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$ 思路: 定义一个二元组$< ...

  9. 【*2000】【2018-2019 ICPC, NEERC, Southern Subregional Contest C 】Cloud Computing

    [链接] 我是链接,点我呀:) [题意] [题解] 我们可以很容易知道区间的每个位置有哪些安排可以用. 显然 我们优先用那些花费的钱比较少的租用cpu方案. 但一个方案可供租用的cpu有限. 我们可以 ...

随机推荐

  1. POJ 3252 Round Number(数位DP)

    Round Numbers Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 6983   Accepted: 2384 Des ...

  2. POJ 3537 multi-sg 暴力求SG

    长为n的一列格子,轮流放同种棋子,率先使棋子连成3个者胜. 可以发现每次放一个棋子后,后手都不能放在[x-2,x+2]这个区间,那么相当于每次放棋将游戏分成了两个,不能放棋者败. 暴力求SG即可 /* ...

  3. 菜鸟学习Spring Web MVC之一

    ---恢复内容开始--- 当当当!!沉寂两日,学习Spring Web MVC去了.吐槽:近日跟同行探讨了下,前端攻城师,左肩担着设计师绘图,右肩担着JAVA代码?!我虽设计过UI,但这只算是PS技巧 ...

  4. asp.net分页之AJAX 分页

    查询功能是开发中最重要的一个功能,大量数据的显示,我们用的最多的就是分页. 在ASP.NET 中有很多数据展现的控件,比如Repeater.GridView,用的最多的GridView,它同时也自带了 ...

  5. 配置SpringMvc + maven 数据源!(四)

    添加依赖项 1. 添加 mybatis 库,打开 pom.xml 添加 mybatis dependency 依赖; <dependency> <groupId>org.myb ...

  6. CF734F Anton and School (构造)

    \(solution\) : 这道题做法很巧妙,需要对位运算有足够了解: $( a $ & $ b )$ \(+\) $( a $ | $ b )$ \(=\) \(a+b\) ,所以有 \( ...

  7. 洛谷 P4910 帕秋莉的手环 矩阵乘法+快速幂详解

    矩阵快速幂解法: 这是一个类似斐波那契数列的矩乘快速幂,所以推荐大家先做一下下列题目:(会了,差不多就是多倍经验题了) 注:如果你不会矩阵乘法,可以了解一下P3390的题解 P1939 [模板]矩阵加 ...

  8. 底板芯片组与内存映射(Motherboard Chipsets and the Memory Map) 【转】

    转自:http://blog.chinaunix.net/uid-25909619-id-4194650.html 底板芯片组与内存映射 我打算写一些关于计算机内部构造(computer intern ...

  9. rtop:一个通过 SSH 监控远程主机的交互式工具【转】

    编译自: http://www.tecmint.com/rtop-monitor-remote-linux-server-over-ssh/ rtop[1] 是一个基于 SSH 的直接的交互式远程系统 ...

  10. DOM文档对象模型简介

    DOM简介     DOM是W3C(万维网联盟)的标准 "W3C文档对象模型DOM是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容.结构.样式".W3C DOM ...