Aizu Online Judge(AOJ)の過去問から、その提出コードの解答例です。
・問題
FX取引では、異なる国の通貨を交換することで為替差の利益を得ることができます。
例えば、1ドル100円の時に 1000ドル買い、価格変動により 1ドル 108円になった時に売ると、
(108円 − 100円) × 1000ドル = 8000円の利益を得ることができます。
ある通貨について、時刻 t における価格
が入力として与えられるので、価格の差
の最大値を求めてください。
・入力される値
最初の行に整数 n が与えられます。続く n 行に整数
が順番に与えられます。
・期待する出力
最大値を1行に出力してください。
・条件
僕が作成、提出したコードは、以下のとおりです。
/* ALDS1_1_D Maximum Profit http://judge.u-aizu.ac.jp/ 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<stdio.h> int main(void){ int loop,n; scanf("%d",&n); int r[n]; for(loop=0;loop<n;++loop){ scanf("%d",&r[loop]); } int min=r[0]; int max=r[1]-r[0]; for(loop=1;loop<n;++loop){ if(max<r[loop]-min){ max=r[loop]-min; } if(min>r[loop]){ min=r[loop]; } } printf("%d\n",max); return 0; }
設問の出典は、プログラミング問題のオンライン採点システム「Aizu Online Judge(AOJ)」です。
http://judge.u-aizu.ac.jp/onlinejudge/
ALDS1_1_D Maximum Profit