| ||||||||||
| 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 <iostream>
#include <iomanip>
#include <cstdlib>
using namespace std;
int A[901];
void Shift(int i,int n)//大根堆
{
int tmp=A[i];
int j=2*i+1;
while(j<n)
{
if(j<n-1&&A[j]<A[j+1])
j++;
if(A[j]>tmp)
{
A[i]=A[j]; //将A[j](子结点)调到双亲位置上
i=j; //修改i,j的值,以便向下"筛"
j=2*i+1;
}
else break;
}
A[i]=tmp;
}
void Hsort(int n)
{
int i;
for(i=n/2;i>=0;i--)//建立初始堆
Shift(i,n);
for(i=0;i<n-1;i++)
{
int tmp=A[0];//交换
A[0]=A[n-1-i];
A[n-1-i]=tmp;
Shift(0,n-1-i);//重新生成堆
}
}
float Float(int c,int p)
{
float q=0;
int s=0;
int i;
for(i=0;i<p;i++)
{
s++;
c-=(A[i+1]-A[i])*100*s;
if(c>=0)
q++;
else
break;
}
if((A[i+1]-A[i])*100*s>0)
{
q++;
}
c+=(A[i+1]-A[i])*100*s;
cout.setf(ios::showpoint);
cout.fill('0');
cout<<"Water level is "<<setprecision(4)<<(A[i]*1000+(c*10)/s)/1000.0<<" meters.\n";
cout<<(q*100)/p<<" percent of the region is under water.\n";
return q;
}
int main()
{
int m,n,i,c,cas=1;
cin>>m>>n;
while(m!=0)
{
int N=m*n;
for(i=0;i<N;i++)
{
cin>>A[i];
}
Hsort(N);
cin>>c;
cout<<"Region "<<cas++<<endl;
Float(c,N);
cin>>m>>n;
}
return 1;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator