202012-2
期末预测之最佳阈值
时间限制:1.0
空间限制:512
第一次提交代码如下:
#include<iostream>
using namespace std;
int main(){
int m;
int i;
cin>>m;
int* a=new int[m];//存储安全指数
int* b=new int[m];//存储挂科的情况
int* c=new int[m];//用来存储以每个成绩为阈值时预测正确的次数
for(i=0;i<m;i++)
cin>>a[i]>>b[i];
for(i=0;i<m;i++)
{
int yuzhi=a[i];
int count=0;
for(int j=0;j<m;j++)
{
if(a[j]>=yuzhi&&b[j]==1)
count++;
else if(a[j]<yuzhi&&b[j]==0)
count++;
}
c[i]=count;
}
//c正确次数的数组已经得到,接下来应该进行一个排序,
//但是同时又要保证a里面的阈值对应的数字不变
int bestyz;//选出最佳的阈值
int j=0;
int max=c[j];
for(i=1;i<m;i++)
{
if(max<c[i])
{
bestyz=a[i];
max=c[i];
j=i;
}
else if(max==c[i])
{
bestyz=a[j]>a[i]?a[j]:a[i];
}
}
cout<<bestyz<<endl;
return 0;
}
最总结果得分60
超时了,还需要再改进: