「コリンク-Ohgas' Fortune」の編集履歴(バックアップ)一覧はこちら
「コリンク-Ohgas' Fortune」(2013/12/05 (木) 23:50:13) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
/*
Problem A: Ohgas' Fortune
制作時間:2010/4/24 20:31~2010/4/24 21:00 (29分)
作者:コリンク
ID:s7509413
[解き方]
まず INPUT の書式に合わせて入力インタフェースから作る。
入力に使った変数のおかげで問題文をより理解しやすくなり、書かれている通りの処理を記述。
最後に出力を記述、といった感じ。
*/
#include <cstdio>
#define outstr(s) fputs(s, stderr);
template <typename T>
T chooseMax(T a, T b){
return (a > b) ? a : b;
}
int main(int argc, char *argv[]){
/* 入力の変数 */
int m;
int shokiunyou, unyounen, n;
int input;
bool fukuri;
double nenriritsu;
int tesuuryo;
/* 出力の変数 */
int i, j;
int max;
/* 制御変数 */
int zandaka, rishi;
scanf("%d", &m);
for(; m > 0; --m){
scanf("%d", &shokiunyou);
scanf("%d", &unyounen);
scanf("%d", &n);
max = 0;
for(; n > 0; --n){
/* 入力 */
scanf("%d %lf %d", &input, &nenriritsu, &tesuuryo);
fukuri = input > 0;
/* 処理 */
zandaka = shokiunyou;
rishi = 0;
for(i = 0; i < unyounen; ++i){
rishi += (int)(nenriritsu * (double)zandaka);
if(fukuri){
zandaka += rishi - tesuuryo;
rishi = 0;
}else{
zandaka -= tesuuryo;
}
}
if(!fukuri){
zandaka += rishi;
}
max = chooseMax(zandaka, max);
}
printf("%d\n", max);
}
return 0;
}
/*
Problem A: Ohgas' Fortune
制作時間:2010/4/24 20:31~2010/4/24 21:00 (29分)
作者:コリンク
[解き方]
まず INPUT の書式に合わせて入力インタフェースから作る。
入力に使った変数のおかげで問題文をより理解しやすくなり、書かれている通りの処理を記述。
最後に出力を記述、といった感じ。
*/
#include <cstdio>
#define outstr(s) fputs(s, stderr);
template <typename T>
T chooseMax(T a, T b){
return (a > b) ? a : b;
}
int main(int argc, char *argv[]){
/* 入力の変数 */
int m;
int shokiunyou, unyounen, n;
int input;
bool fukuri;
double nenriritsu;
int tesuuryo;
/* 出力の変数 */
int i, j;
int max;
/* 制御変数 */
int zandaka, rishi;
scanf("%d", &m);
for(; m > 0; --m){
scanf("%d", &shokiunyou);
scanf("%d", &unyounen);
scanf("%d", &n);
max = 0;
for(; n > 0; --n){
/* 入力 */
scanf("%d %lf %d", &input, &nenriritsu, &tesuuryo);
fukuri = input > 0;
/* 処理 */
zandaka = shokiunyou;
rishi = 0;
for(i = 0; i < unyounen; ++i){
rishi += (int)(nenriritsu * (double)zandaka);
if(fukuri){
zandaka += rishi - tesuuryo;
rishi = 0;
}else{
zandaka -= tesuuryo;
}
}
if(!fukuri){
zandaka += rishi;
}
max = chooseMax(zandaka, max);
}
printf("%d\n", max);
}
return 0;
}
表示オプション
横に並べて表示:
変化行の前後のみ表示: