HDU problem 3877
来源:互联网 发布:网络主播英语怎么说 编辑:程序博客网 时间:2024/06/06 18:54
Special sort
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 331 Accepted Submission(s): 113
Problem Description
We all know a+b=c,but now there is a new rule in equations:
if a>b,then it's equal to [>c];
if a=b,then it's equal to [=c];
if a<b,then it's equal to [<c];
a sample:
1+1=[=2]
2+0=[>2]
0+2=[<2]
1+2=[<3]
and [>c] > [=c] > [<c].
For every [n],
[n+1] > [n] >[n-1].
if a>b,then it's equal to [>c];
if a=b,then it's equal to [=c];
if a<b,then it's equal to [<c];
a sample:
1+1=[=2]
2+0=[>2]
0+2=[<2]
1+2=[<3]
and [>c] > [=c] > [<c].
For every [n],
[n+1] > [n] >[n-1].
Input
The input consists of T cases.The first line of the input contains only positive integer T (0<T<=100).Then follows the cases.Each case begins with a line containing exactly one integer N (0<N<=10000).Then there are N lines, each with two integers a and b (0<a,b<2^31-1).
Output
For each case, calculate each value of a+b(as a+b=[?]) and output a+b=[?] in descending order sorted by [?]. If there exists some pair of a,b whose order can not be determined by the rules above, output them with the order of the input. A blank line should be printed after each case.
Sample Input
251 55 13 34 55 651 66 12 44 23 3
Sample Output
5+6=[<11]4+5=[<9]5+1=[>6]3+3=[=6]1+5=[<6]6+1=[>7]1+6=[<7]4+2=[>6]3+3=[=6]2+4=[<6]
Source
2011 Multi-University Training Contest 4 - Host by SDU
Recommend
lcy
#include<cstdio>#include<iostream>#include<algorithm>#include<string.h>using namespace std;#define MAXN 10001#define in __int64typedef struct node{ in x,y,ans,ii,z;}no;no ct[MAXN];in cmp(no a,no b){ if(a.ans!=b.ans) return a.ans>b.ans; else if(a.z!=b.z) return a.z>b.z; else return a.ii<b.ii;}int main(){ in t; scanf("%I64d",&t); in n,i; while (t--) { scanf("%I64d",&n); for(i=0;i<n;i++) { scanf("%I64d %I64d",&ct[i].x,&ct[i].y); ct[i].ans=ct[i].x+ct[i].y; if(ct[i].x>ct[i].y) ct[i].z=3; if(ct[i].x<ct[i].y) ct[i].z=1; if(ct[i].x==ct[i].y) ct[i].z=2; ct[i].ii=i; } sort(ct,ct+n,cmp); for(i=0;i<n;i++) { printf("%I64d+%I64d=[",ct[i].x,ct[i].y); if(ct[i].z==3) printf(">"); if(ct[i].z==2) printf("="); if(ct[i].z==1) printf("<"); printf("%I64d]\n",ct[i].ans); } printf("\n"); } return 0;}
- HDU problem 3877
- HDU-PROBLEM
- HDU Problem A
- HDU 3549 Flow Problem
- HDU Train Problem II
- HDU 1005 Problem Description
- HDU 1534 Schedule Problem
- hdu 3549 Flow Problem
- hdu 3549 Flow Problem
- HDU 1001 Sum Problem
- hdu 3374 String Problem
- HDU 1016 PrimeRing Problem
- HDU--1001--Sum Problem
- hdu Train Problem II
- hdu 1001 Sum Problem
- hdu A + B problem
- HDU Problem B
- hdu 3549 Flow Problem
- 分类算法之朴素贝叶斯(Naive Bayes)和贝叶斯网络(Bayesian Networks)
- [字符集编码]
- ADF中给VO动态添加where子句,过滤数据(二)
- 网站配置一些事
- 0006_01 Linux系统和Window之间的Samba共享服务
- HDU problem 3877
- 恶狠狠的抱怨篇
- 帮我顶顶,朋友的,谢谢
- 设计模式之-代理模式
- Loki 单键的使用
- Java线程知识深入解析
- Unity中的连调和多点触控
- 做Mp3播放器时的收获
- 创建一个角色到场景的指定坐标,并放到指定目录下