Ohgas'Fortune

mike090521

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;
}