题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805262303477760
vs2010里面没有round函数,需要自己写
double round(double r){return (r > 0.0) ? floor(r + 0.5) : ceil(r - 0.5);}//rount(-2.1) = -2, round(-2.6) = -3
代码
#include<cstdio>#include<iostream>#include<cmath>#include<vector>#include<algorithm>using namespace std;double round(double r){return (r > 0.0) ? floor(r + 0.5) : ceil(r - 0.5);}int main(){int n, m;scanf("%d%d", &n, &m);int g1, g2;int temp;for(int i = 0; i < n; i++){vector<int> newvec;scanf("%d", &g2);for(int j = 0; j < n - 1; j++){scanf("%d", &temp);if(temp >= 0 && temp <= m){newvec.push_back(temp);}}sort(newvec.begin(), newvec.end());newvec.erase(newvec.begin());reverse(newvec.begin(), newvec.end());newvec.erase(newvec.begin());int sum = 0, count = 0;for(int j = 0; j < newvec.size(); j++){sum += newvec[j];count++;}g1 = sum / count;printf("%d\n", (int) round((g1 + g2)*1.0/2));}return 0;}
