思路:最后忘了输出换行,导致我一直wa
Description
给你一个无规则的整数序列,选择号码的顺序如下:最大的,最小的,然后是第二大,第二小...直到所有的数都被选出来。例如:给你1 3 2 5 4,你应该输出5 1 4 2 3。Input
有多个测试案例,每个案例始于一个整数N(1 <= N <= 100000),下面跟着N个整数Output
按照题目描述输出序列Sample Input
5 1 3 2 5 4
Sample Output
5 1 4 2 3
Source
Sunshine#include <cstdio> #include <iostream> #include <cmath> #include <string> #include <cstring> #include <algorithm> #include <queue> #include <vector> #include <map> using namespace std; #define ll long long const int maxn = 5100; int n, a[100000+8], b[100000+8]; int main() { while(~scanf("%d", &n) && n) { for(int i = 0; i<n; i++) scanf("%d", &a[i]); sort(a, a+n, greater<int>()); int maxx = n-1, minn = 0; for(int i = 0; i<n; i++) { if(i%2 == 0) { b[i] = a[minn]; minn++; } else { b[i] = a[maxx]; maxx--; } } for(int i = 0; i<n; i++) { if(i)printf(" "); printf("%d", b[i]); } printf("\n"); } return 0; }