<span style="white-space:pre"> <span style="font-size:32px;"> </span></span><span style="font-size:32px;">洪水</span>
<span style="font-size:24px;">http://7xjob4.com1.z0.glb.clouddn.com/49d1e788ae9a89a2877aba30b18d4e1b
</span><img src="https://img-blog.csdn.net/20160729094730196?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);" alt="" />
<span style="font-size:24px;">#include<stdio.h>
#define M 1000
void sort(int a[],int n)
{
int i,j,t,f;
for(i=0;i<n-1;i++){
f=1;
for(j=0;j<n-i-1;j++){
if(a[j]>a[j+1]){
f=0;
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
if(f==1)
break;
}
}
int search(int a[],int n,int sum,int *s) //找到雨水最多积在第几个格子里
{
int i;
for(i=0;i<n;i++){
*s+=100*a[i];
if(*s+sum<=100*(i+1)*a[i+1])
return i;
}
return n-1;
}
int main()
{
int n,m,p=0;
while(~scanf("%d%d",&n,&m)&&(n||m)){
int i,t,a[M],s=0,sum;
for(i=0;i<n*m;i++)
scanf("%d",&a[i]);
scanf("%d",&sum);
sort(a,n*m); //小到大排序
t=search(a,m*n,sum,&s);
printf("Region %d\nWater level is %.2lf meters.\n%.2lf percent of the region is under water.\n",
++p,1.0*(s+sum)/(t+1)/100,100.0*(t+1)/(n*m));
printf("\n");
}
return 0;
}</span>
<span style="font-size:24px;">请思考下,若有更简单的解法,共同交流,谢谢</span>