求助,第八组数据过不了

P1093 [NOIP2007 普及组] 奖学金

Enderturtle @ 2017-10-23 17:39:24

代码如下:

#include <bits/stdc++.h>
using namespace std;
struct N
{
    int num,id,y;
};
bool cmp(N a1, N a2)
{
    if(a1.num==a2.num) return a1.y>a2.y;
    return a1.num>a2.num;
}
N a[301];
int main()
{
    int m,x,y;
    cin>>m;
    for(int i=1;i<=m;i++)
    {
        cin>>a[i].y>>x>>y;
        a[i].num=a[i].y+x+y;
        a[i].id=i;
    }
    sort(a+1,a+1+m,cmp);
    for(int i=1;i<=5;i++)
    {
        cout<<a[i].id<<' '<<a[i].num<<endl;
    }
    return 0;
} 
希望大神挑错

by Enderturtle @ 2017-10-23 18:26:55

已经明白了

是由于sort的不稳定性

只要把sort改成stable_sort就对了


|