CCF 202012-2 期末预测之最佳阈值 C++代码(70分)
问题描述
解题思路
硬解法。
详细代码
#include <cstdio>
#include <vector>
int main(){
int m, y, result;
scanf("%d", &m);
std::vector<int> yVec, resVec;
for(int i = 0; i < m;i++){
scanf("%d%d", &y, &result);
yVec.push_back(y);
resVec.push_back(result);
}
int ans = yVec[0], maxCnt = 0;
for(std::vector<int>::iterator i = yVec.begin(); i != yVec.end(); i++){
int tempCnt = 0;
for(int j = 0; j < m; j++){
if((yVec[j] >= (*i) && resVec[j] == 1) || (yVec[j] < (*i) && resVec[j] == 0)){
tempCnt++;
}
}
if((tempCnt > maxCnt) || (tempCnt == maxCnt && (*i) > ans)){
maxCnt = tempCnt;
ans = (*i);
}
}
printf("%d", ans);
return 0;
}