我永远也得不到奖学金了

P1093 [NOIP2007 普及组] 奖学金

A_Đark_Horcrux @ 2018-11-28 13:09:48

60分

#include<cstdio>
#include<algorithm>
using namespace std;
int n,a[301],b[301],c[301],d[301],e[301],s[301],i,j;
int main()
{
    scanf("%d",&n);
    for(i=0;i<=n-1;i++)
    {
        scanf("%d%d%d",&b[i],&c[i],&d[i]);
        a[i]=i+1; s[i]=b[i]+c[i]+d[i];
    }
    for(i=0;i<=n-1;i++)
        for(j=i+1;j<=n-1;j++)
        {
            if(s[i]<s[j])
            {
                swap(a[i],a[j]);
                swap(b[i],b[j]);
                swap(c[i],c[j]);
                swap(d[i],d[j]);
                swap(s[i],s[j]);
            }
            else if(s[i]==s[j])
            {
                if((b[i]<b[j])||(b[i]==b[j]&&c[i]<c[j])||(b[i]==b[j]&&c[i]==c[j]&&d[i]<d[j]))
                {
                    swap(a[i],a[j]);
                    swap(b[i],b[j]);
                    swap(c[i],c[j]);
                    swap(d[i],d[j]);
                    swap(s[i],s[j]);
                }
            }
        }
    for(i=0;i<=n-2;i++)
        if(s[i]==s[i+1]&&a[i]<a[i+1])
        {
            swap(a[i],a[i+1]);
            swap(s[i],s[i+1]);
        }
    for(i=0;i<=4;i++)
        printf("%d %d\n",a[i],s[i]);
    return 0;
}

by mcyqwq @ 2018-11-28 13:12:09

@Bilion_冰凌帅 sort


by 天才byt @ 2018-11-28 13:14:44

重载不好吗 qwq


by dinghongyu @ 2018-11-28 13:16:19

stable_sort


by Aehnuwx @ 2018-11-28 13:16:22

@Bilion_冰凌帅 你这个是 O(n^2) 的算法,应该使用 O(nlogn) 算法才能通过此题


by SSerxhs @ 2018-11-28 13:21:46

@Aehnuwx 你看了范围吗。。


by nofall @ 2018-11-28 13:58:11

...


by Aehnuwx @ 2018-11-28 21:15:44

@SSerxhs 啊啊啊啊啊

我撒比了


by WA鸭鸭 @ 2018-12-15 14:26:54

@Bilion_冰凌帅 n^2可以过

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
  int t,max;
  cin>>t;
  int a[t+1],b[t+1],c[t+1],d[t+1],e[t+1];
  for(int u=1;u<=t;u++)
  {
    cin>>a[u]>>b[u]>>c[u];
    d[u]=a[u]+b[u]+c[u];
    e[u]=u;
  }
  for(int o=1;o<=5;o++)
  {
    max=e[o];
    for(int u=o+1;u<=t;u++)
    {
      if(d[o]<d[u])
      {
        swap(d[o],d[u]);
        swap(a[o],a[u]);
        swap(b[o],b[u]);
        swap(c[o],c[u]);
        int y=e[o];
        e[o]=e[u];
        e[u]=y;
      }
      if(d[o]==d[u])
      {
        if(a[o]<a[u])
        {
          swap(d[o],d[u]);
          swap(a[o],a[u]);
          swap(b[o],b[u]);
          swap(c[o],c[u]);
          int y=e[o];
          e[o]=e[u];
          e[u]=y;
        }
        if(a[o]==a[u])
        {
          if(e[o]>e[u])
          {
            swap(d[o],d[u]);
            swap(a[o],a[u]);
            swap(b[o],b[u]);
            swap(c[o],c[u]);
            int y=e[o];
            e[o]=e[u];
            e[u]=y;
          }
        }
      }
    }
    cout<<e[o]<<" "<<d[o]<<endl;
  }
  return 0;
} 

|