AUC计算方法:https://blog.csdn.net/qq_22238533/article/details/78666436
#include<iostream>
#include<algorithm>
#include<cmath>
#include<queue>
#include<stack>
#include<string>
using namespace std;
int main(){
int n;
while(cin>>n)
{
vector<int> pos;
vector<int> neg;
vector<double> score;
for(int i=0;i<n;i++)
{
int x;
double y;
cin>>x>>y;
score.push_back(y);
if(x==1) pos.push_back(i);
else neg.push_back(i);
}
double auc=0;
for(auto x : pos)
{
for(auto y: neg)
{
if(score[x]>score[y]) auc+=1;
else if(score[x]==score[y]) auc+=0.5;
}
}
cout<<auc/(pos.size()*neg.size())<<endl;
}
return 0;
}