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つのプロジェクトに入れて、あと一回の実行で何度もできるようにしています。リダイレクトをしたくなかったのでこういう書き方です。