#include<iostream>//微软编程之美2013全国挑战赛复赛第2题 //由于比赛结束后,提交入口关闭,没来得及提交,但本地数据测试是没错的,不知道能否AC #include<fstream> #include<iomanip> using namespace std; struct yingxiangli{ int d1,d2,d3,d4; double the_larger; int flag; }; int main(){ int m, a, b, c; int d1, d2, d3, d4; int temp1, temp2, temp3,temp4,tem_f; double tem_l; int pro1, pro2; //ifstream ifs("shuju.txt");// //ifs>>m;// cin>>m; for(int i =0; i < m; i++){ yingxiangli emp[505]; //ifs>>a>>b>>c;// cin>>a>>b>>c; for(int j = 0; j < a; j++){ //ifs>>d1>>d2>>d3>>d4;// cin>>d1>>d2>>d3>>d4; emp[j].d1 = d1;emp[j].d2 = d2;emp[j].d3 = d3;emp[j].d4 = d4; pro1 = (d1 + 0.0) / d2; pro2 = (d3 + 0.0) / d4; if(pro1 > pro2){ emp[j].flag = 1; emp[j].the_larger = (d1 + 0.0) / d2; }else{ emp[j].flag = 2; emp[j].the_larger = (d3 + 0.0) / d4; } } for(int n1 = 0; n1 < a - 1; n1++){ for(int n2 = n1 + 1; n2 < a; n2++){ if(emp[n1].the_larger < emp[n2].the_larger){ tem_l = emp[n2].the_larger; temp1 = emp[n2].d1; temp2 = emp[n2].d2; temp3 = emp[n2].d3; temp4 = emp[n2].d4; tem_f = emp[n2].flag; emp[n2].the_larger = emp[n1].the_larger; emp[n2].d1 = emp[n1].d1; emp[n2].d2 = emp[n1].d2; emp[n2].d3 = emp[n1].d3; emp[n2].d4 = emp[n1].d4; emp[n2].flag = emp[n1].flag; emp[n1].the_larger = tem_l; emp[n1].d1 = temp1; emp[n1].d2 = temp2; emp[n1].d3 = temp3; emp[n1].d4 = temp4; emp[n1].flag = tem_f; } } } double jiazhi = 0; double fumian = 0; //int top = b + c; for(int n3 = 0; n3 < a && (b > 0 || c > 0); n3++){ if(emp[n3].flag == 1 && b != 0){ jiazhi += emp[n3].d1; fumian += emp[n3].d2; b--; }else if(emp[n3].flag == 2 && c != 0){ jiazhi += emp[n3].d3; fumian += emp[n3].d4; c--; }else if((c == 0 && emp[n3].flag == 2) || (b == 0 && emp[n3].flag == 1)){ if(emp[n3].flag == 1){ emp[n3].the_larger = (emp[n3].d3 + 0.0) / emp[n3].d4; emp[n3].flag = 2; }else if(emp[n3].flag == 2){ emp[n3].the_larger = (emp[n3].d1 + 0.0) / emp[n3].d2; emp[n3].flag = 1; } for(int n4 = n3; n4 < a - 1; n4++){ if(emp[n4].the_larger < emp[n4 + 1].the_larger){ tem_l = emp[n4].the_larger; temp1 = emp[n4].d1; temp2 = emp[n4].d2; temp3 = emp[n4].d3; temp4 = emp[n4].d4; tem_f = emp[n4].flag; emp[n4].the_larger = emp[n4 + 1].the_larger; emp[n4].d1 = emp[n4 + 1].d1; emp[n4].d2 = emp[n4 + 1].d2; emp[n4].d3 = emp[n4 + 1].d3; emp[n4].d4 = emp[n4 + 1].d4; emp[n4].flag = emp[n4 + 1].flag; emp[n4 + 1].the_larger = tem_l; emp[n4 + 1].d1 = temp1; emp[n4 + 1].d2 = temp2; emp[n4 + 1].d3 = temp3; emp[n4 + 1].d4 = temp4; emp[n4 + 1].flag = tem_f; } } n3--; } } //cout<<jiazhi<<" "<<fumian<<endl;// cout<<fixed; cout<<"Case #"<<i + 1<<": "<<setprecision(6)<<jiazhi/fumian<<endl; //system("pause");// } }