微软编程之美2013全国挑战赛 复赛 第2题
2013-04-20 18:14
417 查看
#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");// } }
相关文章推荐
- 微软编程之美2013全国挑战赛 初赛第1场 第2题
- 微软编程之美2013全国挑战赛 资格赛 第1题
- 2013 微软编程之美全国挑战赛之资格赛 传话游戏
- 2013编程之美全国挑战赛初赛第二场-集会
- 踩方格--2013微软编程之美挑战赛之测试赛
- 2013编程之美全国挑战赛---相似字符串
- 2013编程之美全国挑战赛-传话游戏
- 记2012微软编程之美全国挑战赛
- 宋体数据2013编程之美全国挑战赛资格赛之传话游戏
- 编程之美2013全国挑战赛测试赛
- 编程之美2013全国挑战赛之传话游戏
- 编程之美2013全国挑战赛资格赛题题1 传话游戏【简单模拟】
- 传话游戏(2013编程之美全国挑战赛资格赛)
- 2013编程之美全国挑战赛初赛第一场 第二题 相似字符串
- 编程之美2013全国挑战赛资格赛第1题
- 2013编程之美全国挑战赛 传话游戏
- 编程之美2013全国挑战赛资格赛第3题
- 2013编程之美全国挑战赛 长方形
- 2013编程之美全国挑战赛资格赛之传话游戏
- [转]编程之美 2013 全国挑战赛 资格赛 题目二 长方形