JOI予選の苦難。

JOI予選の変態テンプレートコードを作ってみました。

#include <cstdio>
#if 1 /*ここで有効無効の変更*/
const int problemno=0; /*ここで問題番号の変更*/
FILE *fp_in,*fp_out;
#define scanf(...) fscanf(fp_in,__VA_ARGS__)
#define printf(...) fprintf(fp_out,__VA_ARGS__)

#include <memory.h>
#include <climits>
#include <algorithm>
#define _USE_MATH_DEFINES
#include <math.h>
#include <vector>
#include <list>
#include <map>
#include <queue>
#include <stack>
#include <cstring>

#define REP(i,x) for(int i=0;i<x;++i)
#define REP2(i,a,b) for(int i=a;i<b;++i)

void solve()
{
	/*ここを編集します。ここが解く部分です。*/
}

#undef scanf
#undef printf

int main()
{
	while(true){
		int inputno;
		scanf("%d",&inputno);
		if(inputno==0){
			printf("finish\n");
			break;
		}
		char inputname[100],outputname[100];
		sprintf(inputname,"in\\2012-yo-t%d-in%d.txt",problemno,inputno);
		fp_in=fopen(inputname,"r");
		if(!fp_in){
			printf("invalid\n");
			continue;
		}
		sprintf(outputname,"out\\%d-%d.txt",problemno,inputno);
		fp_out=fopen(outputname,"w");
		solve();
		printf("%d-%d solved\n",problemno,inputno);
		fclose(fp_in);
		fclose(fp_out);
	}
	return 0;
}

#endif

僕は、ソースコードは全部1つのプロジェクトに入れて、あと一回の実行で何度もできるようにしています。リダイレクトをしたくなかったのでこういう書き方です。