Ohgas'Fortune
Ohgas'Fortune
長いけどそんなに難しくないよ
#include <stdio.h> #include <math.h> int main(void) { // ファイル出力準備 FILE *pfO; // 出力ファイルポインタ pfO = fopen("a.out","w"); if(pfO==NULL) { printf("ファイルが開けません\n"); return -1; } // // 入力 // int m; // データセット数 scanf("%d", &m); for(int i = 0; i < m; i++) { double o; // 初期運用資金 int y; // 運用年数 int n; // 運用方法の種類数 scanf("%lf%d%d", &o, &y, &n); // 運用 double max = o; // 最大残高 for(int j = 0; j < n; j++) { int f; // 単利・複利の別 double r; // 年利率 int c; // 手数料 scanf("%d%lf%d", &f, &r, &c); if(f == 0) // 単利 { double now = o; // 現在の残高 double s = 0; // 単利の合計 for(int k = 0; k < y; k++) { s += floor(now * r); now -= c; } if(max < now+s) max = now+s; } else { double now = o; for(int k = 0; k < y; k++) { now += floor(now * r) - c; } if(max < now) max = now; } } printf("%.0lf\n", max); char out[10]; sprintf(out, "%.0lf", max); fputs(out, pfO); fputc('\n', pfO); } //ファイルポインタを閉じる fclose(pfO); return 0; }