| ||||||||||
| 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 | |||||||||
没有语言了!检查了n遍了还是WA!#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int M;
int N;
int minc;
int maxc;
cin>>M>>N>>minc>>maxc;
int *wet=new int[M];
int *sou=new int[N];
for(int i=0;i<M;i++)
cin>>wet[i];
for(i=0;i<N;i++)
cin>>sou[i];
sort(wet,wet+M-1);
sort(sou,sou+N-1);
//////////////////////
int maxM=0,maxN=0;
for(i=0;i<M;i++)
if(wet[i]>maxM)
maxM=wet[i];
for(i=0;i<N;i++)
if(sou[i]>maxN)
maxN=sou[i];
if(maxM!=maxN)
{cout<<"Impossible"<<endl;
return 0;
}
//////////"Impossible判断"///////////////
int maxfloor=0,minfloor=0;
int j;
int cur=0;
for(i=0;i<M;i++)
{
for(j=cur;j<N;j++,cur++)
if(wet[i]<=sou[j])
{maxfloor+=(N-j)*wet[i];
break;
}
}
cur=0;
for(i=0;i<N;i++)
{
for(j=cur;j<M;j++,cur++)
if(sou[i]<wet[j])
{maxfloor+=(M-j)*sou[i];
break;
}
}
///////////////求得最大maxfloor///////////////////
cur=0;
for(i=0;i<M;i++)
{ if(cur==N)
{minfloor+=wet[i];
continue;
}
for(j=cur;j<N;j++,cur++)
if(wet[i]==sou[j])
{minfloor+=sou[j];
cur++;
break;
}
else if(wet[i]<sou[j])
{minfloor+=wet[i];
break;
}
else if(wet[i]>sou[j])
{
minfloor+=sou[j];
}
}
///////////////求得最小minfloor//////////////////
cout<<"Minimum: "<<minfloor*minc<<","<<" maximum: "<<maxfloor*maxc<<endl;
delete[] wet;
delete[] sou;
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator