zoukankan      html  css  js  c++  java
  • 1055 集体照 (25 分)

    TIM截图20190301110900.jpg

    #include <iostream>
    #include<string>
    #include<algorithm>
    using namespace std;
    #define N 10002
    typedef struct {
    	string name;
    	int height;
    }node,human[N];
    bool compare(node x, node y) {//自定义排序函数
    	if (x.height > y.height) {
    		return true;
    	}
    	if (x.height == y.height) {
    		if (x.name < y.name) {
    			return true;
    		}
    	}
    	return false;
    }
    int main()
    {
    	int n, k;
    	cin >> n >> k;
    	int m = n / k;//每排人数
    	human a;
    	for (int i = 0;i < n;i++) {
    		cin >> a[i].name >> a[i].height;
    	}
    	sort(a, a + n,compare);
    	int last = n - m * (k - 1);//最后一排人数
    	int mid = last / 2 + 1;//中间位置
    	node put[last+1];
    	int left = 1, right = 0;
    	bool flag = true;
    	//先排好最后一排
    	for (int i = 0;i < last;i++) {
    		if (flag) {
    			put[mid + right] = a[i];
    			right++;
    			flag = false;
    		}
    		else {
    			put[mid - left] = a[i];
    			left++;
    			flag = true;
    		}
    	}
    	for (int i = 1;i <= last;i++) {
    		if (i != 1)cout << ' ';
    		cout << put[i].name;
    	}
    	cout << endl;
    	//再排其他排
    	flag = true;
    	left = 1, right = 0;
    	int jishu = 0;
    	int zhong = m / 2 + 1;//每排的中间位置
    	for (int i = last;i < n;i++) {
    		if (flag) {
    			put[zhong + right] = a[i];
    			right++;
    			jishu++;
    			flag = false;
    		}
    		else {
    			put[zhong - left] = a[i];
    			left++;
    			jishu++;
    			flag = true;
    		}
    		if (jishu == m) {
    			flag = true;
    			left = 1, right = 0;
    			jishu = 0;
    			int zhong = m / 2 + 1;//每排的中间位置
    			for (int j = 1;j <= m;j++) {
    				if (j != 1)cout << ' ';
    				cout << put[j].name;
    			}
    			cout << endl;
    		}
    	}
    	
    	return 0;
    }
    
  • 相关阅读:
    [国家集训队]数颜色 / 维护队列
    [SP3267]DQUERY
    扩展欧几里得算法详解(exgcd)
    [CTSC2018]混合果汁
    极角排序那些事
    向量的点乘与叉乘学习笔记
    [APIO2014]序列分割
    CF1148D-Dirty Deeds Done Dirt Cheap
    CF176E Archaeology(set用法提示)
    【网络流24题】最长不下降子序列问题
  • 原文地址:https://www.cnblogs.com/chance-zou/p/10455259.html
Copyright © 2011-2022 走看看