ACM/ICPC #include<stdio.h> int cutting[50][2]; int num_hanahuda; int num_cutting; int answer; char *file_in = "2004A_in.txt"; char *file_out = "2004A_out.txt"; FILE *fp_in, *fp_out; void setCutting(void); void getAnswer(void); int main(void) { fp_in = fopen(file_in, "r"); fp_out = fopen(file_out, "w"); while(1) { fscanf(fp_in, "%d", &num_hanahuda); fscanf(fp_in, "%d", &num_cutting); printf("%d", num_hanahuda); printf("\n%d\n", num_cutting); setCutting(); if(num_hanahuda == 0 && num_cutting == 0) break; getAnswer(); } fclose(fp_in); fclose(fp_out); return 0; } void setCutting() { int i; for(i = 0; i < num_cutting; i++) { fscanf(fp_in,"%d", &cutting[i][0]); fscanf(fp_in, "%d", &cutting[i][1]); } } void getAnswer() { answer = 1; for(; num_cutting > 0; num_cutting--) { if(answer <= cutting[num_cutting - 1][0] + cutting[num_cutting - 1][1] - 1) { if(answer <= cutting[num_cutting - 1][1]) { answer += cutting[num_cutting - 1][0] - 1; } else { answer -= cutting[num_cutting - 1][1]; } } } answer = num_hanahuda - answer + 1; fprintf(fp_out, "%d\n", answer); } |