C题求救,WA10

#include<bits/stdc++.h>
using namespace std;
struct fuck{
    int a,w;
}you[50005];
int n,k,e[11];
int main(){
    cin>>n;
    for(int i=1;i<=10;i++)cin>>e[i];
    for(int i=1;i<=n;i++){cin>>you[i].w;you[i].a=i;}
    sort(you+1,you+1+n,[](fuck &a,fuck &b){
        if(a.w==b.w)return a.a<b.a;
        return a.w>b.w;
    });
    for(int i=1;i<=n;i++)you[i].w+=e[(i-1)%10+1];
    sort(you+1,you+1+n,[](fuck &a,fuck &b){
        if(a.w==b.w)return a.a<b.a;
        return a.w>b.w;
    });
    for(int i=1;i<=k;i++)cout<<you[i].a<<" ";
}
2 个赞

你的 k 没写输入。

2 个赞
#include<bits/stdc++.h>
using namespace std;
struct fuck{
    int a,w;
}you[50005];
int n,k,e[11];
int main(){
    cin>>n;
    cin>>k;
    for(int i=1;i<=10;i++)cin>>e[i];
    for(int i=1;i<=n;i++){cin>>you[i].w;you[i].a=i;}
    sort(you+1,you+1+n,[](fuck &a,fuck &b){
        if(a.w==b.w)return a.a<b.a;
        return a.w>b.w;
    });
    for(int i=1;i<=n;i++)you[i].w+=e[(i-1)%10+1];
    sort(you+1,you+1+n,[](fuck &a,fuck &b){
        if(a.w==b.w)return a.a<b.a;
        return a.w>b.w;
    });
    for(int i=1;i<=k;i++)cout<<you[i].a<<" ";
}
3 个赞