1 条题解
-
0
C :
#include<stdio.h> #include<stdlib.h> typedef long long lint; struct node{ int g[4], L; int flag; lint id; }; typedef struct node record; record stu[302]; int cmp(const void *a, const void *b){ record* aa = (record*)a; record* bb = (record*)b; if(aa->flag!=bb->flag) return (aa->flag>bb->flag)?-1:1; else if(aa->L!=bb->L) return (aa->L>bb->L)?-1:1; else return (aa->id<bb->id)?-1:1; } int main(){ int N, i, j; int G[4], LL; for(i=0;i<4;i++) scanf("%d", &G[i]); scanf("%d", &LL); scanf("%d", &N); int cnt=0; for(i=0;i<N;i++){ scanf("%lld", &stu[i].id); stu[i].L = 0; stu[i].flag = 1; for(j=0;j<4;j++){ scanf("%d", &stu[i].g[j]); stu[i].L += stu[i].g[j]; if(stu[i].g[j]<G[j]) stu[i].flag = 0; } if(stu[i].L < LL) stu[i].flag = 0; if(stu[i].flag==1) cnt++; } qsort(stu, N, sizeof(stu[0]), cmp); printf("%d\n", cnt); for(i=0;i<cnt;i++){ printf("%013lld %d\n", stu[i].id, stu[i].L); } return 0; }C++ :
#include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int maxn = 310; struct student { char id[15]; int sum; }stu[maxn]; bool cmp(student a, student b) { if(a.sum != b.sum) return a.sum > b.sum; else return strcmp(a.id, b.id) < 0; } int main() { // freopen("4.in", "r", stdin); // freopen("4.out", "w", stdout); int a, b, c, d, L; scanf("%d%d%d%d%d", &a, &b, &c, &d, &L); int n, ta, tb, tc, td, num = 0; char id[15]; scanf("%d", &n); for(int i = 0; i < n ; i++) { scanf("%s%d%d%d%d", id, &ta, &tb, &tc, &td); int sum = ta + tb + tc + td; if(ta >= a && tb >= b && tc >= c && td >= d && sum >= L) { strcpy(stu[num].id, id); stu[num++].sum = sum; } } sort(stu, stu + num, cmp); printf("%d\n", num); for(int i = 0; i < num; i++) { printf("%s %d\n", stu[i].id, stu[i].sum); } return 0; }Java :
import java.util.ArrayList; import java.util.Collections; import java.util.Scanner; public class Main { static int[] pp=new int [5]; static int N; public static void main(String[] args) { Scanner sc=new Scanner(System.in); ArrayList<St> arr=new ArrayList<St>(); for(int i=0;i<5;i++) pp[i]=sc.nextInt(); N=sc.nextInt(); for(int i=0;i<N;i++){ St st=new St(sc.next(), sc.nextInt(), sc.nextInt(), sc.nextInt(), sc.nextInt()); if(st.A>=pp[0]&&st.B>=pp[1]&&st.C>=pp[2]&& st.D>=pp[3]&&st.E>=pp[4]) arr.add(st); } Collections.sort(arr); System.out.println(arr.size()); for(int i=arr.size()-1;i>=0;i--) System.out.println(arr.get(i)); } } class St implements Comparable<St>{ String name; int A; int B; int C; int D; int E; St(String s,int a,int b,int c,int d){ name=s; A=a; B=b; C=c; D=d; E=a+b+c+d; } @Override public int compareTo(St o) { if(this.E!=o.E) return this.E-o.E; else return o.name.compareTo(this.name); } @Override public String toString() { return name+" "+E; } }
- 1
信息
- ID
- 941
- 时间
- 1000ms
- 内存
- 64MiB
- 难度
- 8
- 标签
- 递交数
- 23
- 已通过
- 4
- 上传者