#include <stdio.h>
int main() {
int m;
scanf("%d", &m);
int yi[m], resulti[m];
int i, j;
for (i = 0 ; i < m; i++) {
scanf("%d %d", &yi[i], &resulti[i]);
}
int yuzhi;
int pridect;
int right = 0;
int count[m] ;//用来存放预测正确的次数
for (i = 0 ; i < m ; i++) {
yuzhi = yi[i];//将yi[i]的值赋给yuzhi,依次遍历,看各个阈值的准确率哪个最高
for (j = 0 ; j < m ; j++) {
if (yi[j] < yuzhi) {
pridect = 0;
if (pridect == resulti[j]) {
right++;
}
} else { //yi[j]>=yuzhi
pridect = 1 ;
if (pridect == resulti[j]) {
right++;
}
}
}
// printf("%d %d\n", yi[i], right);//输出阈值,预测正确的次数
count[i] = right;//将预测正确的数值放入count数组中
right = 0;
}
int max, max1;
max1 = yi[0];
max = count[0];
for (i = 0; i < m - 1; i++) {//由于后面有i+1的表达式,如果m不减一,遍历到最后一次会数组越界
if (count[i + 1] >= max) {
max = count[i + 1];
if (yi[i + 1] >= max1)
max1 = yi[i + 1];
}
}
printf("%d", max1);
return 0;
}
由于用了两个for循环,超时了,只有四十分。