您的位置:首页 > 其它

九度考研真题 浙大 2012-3浙大1437:To Fill or Not to Fill

2015-10-22 15:06 603 查看
//题目1437:To Fill or Not to Fill

#include<iostream>

using namespace std;

int main()

{

double Cmax,D,Davg;

int N;

double price[1000];

double dis[1000];

double MAX=0;

double DIS=0;

while(cin>>Cmax){

MAX=0;

cin>>D>>Davg>>N;

for(int i=0;i<N;i++){

cin>>price[i]>>dis[i];

}

for(int i=0;i<N;i++){

for(int j=i;j<N-1;j++){

if(dis[j]<dis[j+1]){

double di=dis[j];dis[j]=dis[j+1];dis[j+1]=di;

double pri=price[j];price[j]=price[j+1];price[j+1]=pri;

}

}

}

for(int i=0;i<N;){

for(int j=i+1;j<N;j++){

if(dis[j]-dis[i]<Cmax*Davg){ //在可达距离内

if(price[j]<price[i]){ //后面价钱更合算

MAX+=price[i]*(dis[j]-dis[i]);

DIS+=dis[j]-dis[i];i=j;

}

else {

MAX+=price[i]*Cmax;

DIS=Cmax*Davg;

i++;

}

}

}

cout<<i<<endl;

}

if(DIS<D){

cout<<"The maximum travel distance = "<<DIS<<endl;

}

else{

cout<<MAX<<endl;

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: