- 359 名前:348 mailto:sage [2008/04/23(水) 01:33:42 ]
- >>356
#include<stdio.h> #define N 1000000 int main(void){ int min,max,mid; int count1,count2; int data,i; FILE *fp; min=1; max=N; while(min<max){ mid=(min+max)/2; count1=count2=0; fp=fopen("bdata.txt", "r"); if(fp==NULL) return 1; for(i=0;i<N-1;i++){ fscanf(fp, "%d", &data); if(data>=min && data<=max){ if(data<=mid) count1++; else count2++; } } fclose(fp); if(count1<mid-min+1) max=mid; else min=mid+1; } printf("%d\n", max); return 0; }
|

|