c(2ms)/c++(2ms, 96KB)/java(0.4ms)我的方法是第一個值設為b,然後第二個值開始輸入,檢查是否高於b+d。超過即紀錄賣點的值s,,檢查是否低於s-d。利用e判斷是否持有股票,這個蠻關鍵的,要AC就靠他,沒設的話,範例過了,測資不會過。以下附上原始碼,當然是java的,java太多眉眉角角的細節,考試還是乖乖用C++比較順。
import java.util.Scanner;public class A202311191 {
public static void main(String[] args) {
int n,d,i,a,b,s=0,c=0,e=1;
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
d = sc.nextInt();
b = sc.nextInt();
for(i=1;i<n;i++)
{
a= sc.nextInt();
if(e==1)
{
if(a>=b+d)
{
s=a;
c+=(s-b);
e=0;
}
}
else
{
if(a<=s-d)
{
b=a;
e=1;
}
}
}
System.out.println(c);
}
}