1 条题解
-
0
C++ :
#include <cstdio> #include <cstdlib> #include <cstring> #include <iomanip> #include <iostream> using namespace std; struct info { int id; int tot; int zhcn; }; info score[301]; int n; void infoget(int id); bool infocomp(info,info); void infoswap(int,int); void qsort(int l,int r); int main() { cin>>n; for (int i = 1;i <= n;i++) infoget(i); qsort(1,n); for (int ccc = 1;ccc <= 5;ccc++) cout<<score[ccc].id<<" "<<score[ccc].tot<<endl; return 0; } void infoget(int id) { int a,b,c; cin>>a>>b>>c; score[id].id = id; score[id].zhcn = a; score[id].tot = a + b + c; return; } void qsort(int l,int r) { int i = l,j = r; info mid; mid = score[(l + r) / 2]; do { while (infocomp(score[i],mid))i++; while (infocomp(mid,score[j]))j--; if (i <= j) { infoswap(i,j); i++; j--; } } while (i <= j); if (l < j) qsort(l,j); if (i < r) qsort(i,r); return; } bool infocomp(info a,info b) { if (a.tot > b.tot) return true; else if (a.tot == b.tot) if (a.zhcn > b.zhcn) return true; else if (a.zhcn == b.zhcn) if (a.id < b.id) return true; return false; } void infoswap(int id1,int id2) { info p; p=score[id1]; score[id1] = score[id2]; score[id2] = p; return; }Pascal :
var i,n,jh,j:longint; xh,zf,yw,sx,xy:array[1..1000] of longint; begin readln(n); xh[1]:=1; read(yw[1],sx[1],xy[1]); zf[1]:=yw[1]+sx[1]+xy[1]; for i:=2 to n do begin xh[i]:=i; read(yw[i],sx[i],xy[i]); zf[i]:=yw[i]+sx[i]+xy[i]; end; for j:=1 to n-1 do for i:=1 to n-j do begin if zf[i]<zf[i+1] then begin jh:=xh[i]; xh[i]:=xh[i+1]; xh[i+1]:=jh; jh:=yw[i]; yw[i]:=yw[i+1]; yw[i+1]:=jh; jh:=sx[i]; sx[i]:=sx[i+1]; sx[i+1]:=jh; jh:=xy[i]; xy[i]:=xy[i+1]; xy[i+1]:=jh; jh:=zf[i]; zf[i]:=zf[i+1]; zf[i+1]:=jh; end; if zf[i]=zf[i+1] then if yw[i]<yw[i+1] then begin jh:=xh[i]; xh[i]:=xh[i+1]; xh[i+1]:=jh; jh:=yw[i]; yw[i]:=yw[i+1]; yw[i+1]:=jh; jh:=sx[i]; sx[i]:=sx[i+1]; sx[i+1]:=jh; jh:=xy[i]; xy[i]:=xy[i+1]; xy[i+1]:=jh; jh:=zf[i]; zf[i]:=zf[i+1]; zf[i+1]:=jh; end else if yw[i]=yw[i+1] then if xh[i]>xh[i+1] then begin jh:=xh[i]; xh[i]:=xh[i+1]; xh[i+1]:=jh; jh:=yw[i]; yw[i]:=yw[i+1]; yw[i+1]:=jh; jh:=sx[i]; sx[i]:=sx[i+1]; sx[i+1]:=jh; jh:=xy[i]; xy[i]:=xy[i+1]; xy[i+1]:=jh; jh:=zf[i]; zf[i]:=zf[i+1]; zf[i+1]:=jh; end end; for i:=1 to 5 do writeln(xh[i],' ',zf[i]); end.
- 1
信息
- ID
- 1059
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者