Wednesday, December 9, 2015

UVa 11321 - Sort! Sort!! and Sort!!!

// UVa 11321 - Sort! Sort!! and Sort!!!

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

int n, m;

bool comp(int a, int b) {
	int am = a % m;
	int bm = b % m;
	if (am != bm)
		return am < bm;
	int a2 = abs(a % 2);
	int b2 = abs(b % 2);
	if (a2 != b2)
		return a2 == 1;
	if (a2 == 1)
		return a > b;
	return a < b;
}

int main() {

	cin >> n >> m;
	while (n || m) {
		int a[10000];
		for (int i = 0; i < n; i++)
			cin >> a[i];
		sort(a, a + n, comp);
		cout << n << " " << m << endl;
		for (int i = 0; i < n; i++)
			cout << a[i] << endl;
		cin >> n >> m;
	}
	cout << n << " " << m << endl;

	return 0;
}

No comments:

Post a Comment