Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
wa死了!!冰天雪地裸地跪求高手指正错误!!!#include <stdio.h> #include <stdlib.h> long buf[100000]; int countElement=0; int K; const int isEqual=0; const int tooSmall=1; const int tooLarge=2; int iterative(long l){ int total=0; int i; for(i=0;i<countElement;i++){ total+=buf[i]/l; } if(total>K) return tooLarge; else if(total==K){ return isEqual; }else return tooSmall; } int main(){ int N; int i,j,tag,result; char tmp[30]; char* ptr; long min,a,b,l,sum; scanf("%d %d",&N,&K); min=1000000; sum=0; for(i=0;i<N;i++){ memset(tmp,0,sizeof(tmp)); scanf("%s",&tmp); ptr=strchr(tmp,'.'); strncpy(ptr,ptr+1,2); ptr[2]='\0'; buf[countElement]=atol(tmp); if(min>buf[countElement]){ min=buf[countElement]; } sum+=buf[countElement]; countElement++; } int store=0; if(sum<K){ result=0; }else{ a=1; b=min; result=0; while(a<=b){ l=(a+b)/2; if(l==0){ break; } tag=iterative(l); if(tag==isEqual){ result=l; a=l+1; }else if(tag==tooLarge){ a=l+1; result=l; }else if(tag==tooSmall){ b=l-1; } } } printf("%.2lf\n",(double)result/100); return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator