:(
by him0715 @ 2022-07-17 21:01:04
您数组下表从 $0$ 开始的。
当您 ``sort(ans+1,ans+n+1,mycmp);`` 时不应该是数组 ``ans+1``
by AKNOI的梓钦 @ 2022-07-17 21:04:30
应该是 ``sort(ans,ans+n,mycmp);``
by AKNOI的梓钦 @ 2022-07-17 21:04:55
`sort(ans+1,ans+1+n,mycmp);`
你不是从0开始吗,为什么要+1
by panyanppyy @ 2022-07-17 21:05:21
[AC记录](https://www.luogu.com.cn/record/80009385)
~~记得关注~~
by AKNOI的梓钦 @ 2022-07-17 21:05:32
emmm,还是全wa
```cpp
#include <bits/stdc++.h>
using namespace std;
struct student{
string name;
int end,grade;
char is_gan,is_xi;
int lun;
int id,money;
};
bool mycmp(student a,student b){
if(a.id == b.id) return a.id > b.id;
else return a.id<b.id;
}
int main(){
int n;
cin>>n;
student ans[n];
for(int i=0;i<n;i++){
cin>>ans[i].name>>ans[i].end>>ans[i].grade>>ans[i].is_gan>>ans[i].is_xi>>ans[i].lun;
ans[i].id=i;
}
for(int i=0;i<n;i++){
if(ans[i].lun>=1){
if(ans[i].end>80){
ans[i].money+=8000;
}
}
if(ans[i].end>85){
if(ans[i].grade>80){
ans[i].money+=4000;
}
}
if(ans[i].end>90){
ans[i].money+=2000;
}
if(ans[i].is_xi=='Y'){
ans[i].money+=1000;
}
if(ans[i].grade>80){
ans[i].money+=850;
}
}
sort(ans,ans+n,mycmp);
cout<<ans[0].name<<endl;
cout<<ans[0].money<<endl;
int all=0;
for(int i=0;i<n;i++)all+=ans[i].money;
cout<<all<<endl;
return 0;
}
```
:(
by him0715 @ 2022-07-18 17:09:46