老--质价比
Time Limit: 1000MS
Memory Limit: 65536KB
Problem Description
给出n件物品,每件物品有质量和价格两种属性。你要做的是按质量升序排序,若质量相同则按价格降序排序。
Input
多组输入。每组先输入一个正整数n(1<=n && n <= 100),代表有n件物品。接下来的一行有n个正整数Wi(1<= Wi && Wi <= 10000),代表每件物品的质量。再接下来的一行有n个正整数Pi(1 <= Pi && Pi <= 10000),代表每件物品的价格。
Output
对于每组数据输出n行,每行两个数Wi,Pi。顺序为题目描述所要求。
Example Input
3 1 2 2 3 2 3
Example Output
1 3 2 32 2
#include <bits/stdc++.h> using namespace std; const int N=1005; int n; struct node { int quality; int price; }thing[N]; bool cmp(const node& x,const node& y) { if(x.quality==y.quality) return x.price>y.price; else return x.quality<y.quality; } int main() { while(~scanf("%d",&n)) { for(int i=1;i<=n;i++) cin>>thing[i].quality; for(int i=1;i<=n;i++) cin>>thing[i].price; sort(thing+1,thing+1+n,cmp); for(int i=1;i<=n;i++) cout<<thing[i].quality<<" "<<thing[i].price<<endl; } return 0; }