c_cpp 建筑设计

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 建筑设计相关的知识,希望对你有一定的参考价值。

#include <vector>
#include <algorithm> // for sort()
#include <cstdlib> // for abs()
#include <iostream>
using namespace std;

inline int back_or_0(const vector<int> &v) {
	return (v.size()>0)? v.back(): 0;
}
inline int pop_out(vector<int> &v) {
	int x=v.back();
	v.pop_back();
	return x;
}

int pop_next_smaller(vector<int> &v,int x) {
	while (v.size()>0 && v.back()>=x) v.pop_back();
	if (v.size()>0) return pop_out(v);
	return 0;
}

int max_floor(vector<int> &a,vector<int> &b) {
	sort(a.begin(),a.end());
	sort(b.begin(),b.end());
	
	int num=0,pre=1<<30;
	// the vector has the greatest number goes first.
	switch (back_or_0(a)>back_or_0(b)) {
		while (true) {
		case true:
			pre=pop_next_smaller(a,pre);
			if (pre==0) return num;
			num++;
		case false:
			pre=pop_next_smaller(b,pre);
			if (pre==0) return num;
			num++;
		}
	}
}

int main() {
	int k;
	cin>>k;
	while (k--) {
		int n,x;
		vector<int> a,b;
		cin>>n;
		while (n--) {
			cin>>x;
			(x>0? a:b).push_back(abs(x));
		}
		cout<<max_floor(a,b)<<endl;
	}
	return 0;
}

以上是关于c_cpp 建筑设计的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp C ++工厂设计模式

c_cpp C ++ 3D城市建筑飞行

c_cpp CPP:观察者设计模式

c_cpp C ++策略设计部分(参考:http://isocpp.org/blog/2013/10/patterns)

c_cpp 设计一个类来处理矩阵,它需要能够返回ma中任意子矩形元素的平均值

c_cpp 为emplyee / manager系统设计一个结构。员工属于经理。一位经理有几名员工。他们也可能属于