抢红包
题目详情 - L2-009 抢红包 (25 分) (pintia.cn)
结构体排序,23分...
#include<iostream> #include<algorithm> using namespace std; const int N=1e5+10; struct mess{ double s; int g,f; }v[N]; bool cmp(mess x,mess y) { if(x.s==y.s&&x.g==y.g) return x.f<y.f; else if(x.s==y.s) return x.g>y.g; else return x.s>y.s; } int main(){ int n; cin>>n; for(int i=1;i<=n;i++) { int k,a; double b; cin>>k; for(int j=1;j<=k;j++) { cin>>a>>b; v[i].f=i; v[a].g++; v[i].s-=b; v[a].s+=b; } } sort(v+1,v+n+1,cmp); for(int i=1;i<=n;i++) { printf("%d ",v[i].f); printf("%.2lf\n",v[i].s/100.0); } return 0; }
浙公网安备 33010602011771号