码迷,mamicode.com
首页 > 其他好文 > 详细

还是sort简单题

时间:2017-10-08 21:27:51      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:ons   space   menu   std   strong   sub   统计   指定   输出   

还是sort简单题

总时间限制: 
1000ms
 
内存限制: 
65536kB
描述

程序填空,产生指定输出结果

#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;

struct Point{
	int x;
	int y;
};
// 在此处补充你的代码
int main()
{
	int a[8] = {6,5,55,23,3,9,87,10 };
	sort(a,a+8,Rule1());
	for(int i = 0;i < 8; ++i)
		cout << a[i] << "," ; 
	cout << endl;
	Point ps[8] = {{1,0},{0,1},{0,-1},{-1,0},{1,-1},{1,1},{2,0},{-2,0} } ;
	sort(ps,ps+8,Rule2());
	for(int i = 0;i < 8; ++i)
		cout << "(" << ps[i].x << "," << ps[i].y << ")"; 
	return 0;
}
输入
输出
10,23,3,55,5,6,87,9,
(-1,0)(0,-1)(0,1)(1,0)(1,-1)(1,1)(-2,0)(2,0)

整数按照个位数从小到大排。个位数相同,则大的排前面 

点按照离原点从近到远排。距离相同,则按x坐标从小到大排。x坐标也相同,则按y坐标从小到大排
样例输入
样例输出
10,23,3,55,5,6,87,9,
(-1,0)(0,-1)(0,1)(1,0)(1,-1)(1,1)(-2,0)(2,0)
来源
Guo Wei
————————————————————————————————————————————————————————————————————————————
源代码:
struct Rule1
{
	bool operator()(const int & a1,const int & a2)
	{
		if (a1%10==a2%10)
			return a1>a2;
		else
			return a1%10<a2%10;
	}
};
struct Rule2
{
	bool operator()(const Point & ps1,const Point & ps2)
	{
		if ((ps1.x)*(ps1.x)+(ps1.y)*(ps1.y)==(ps2.x)*(ps2.x)+(ps2.y)*(ps2.y))
		{
			if (ps1.x==ps2.x)
				return ps1.y<ps2.y; 
			else
				return ps1.x<ps2.x;
		}
		else
			return ps1.x*ps1.x+ps1.y*ps1.y<ps2.x*ps2.x+ps2.y*ps2.y;
	}
};
注意:
ps1,ps2的类型

还是sort简单题

标签:ons   space   menu   std   strong   sub   统计   指定   输出   

原文地址:http://www.cnblogs.com/w1992/p/7638427.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!