比赛 防止颓废的小练习v0.15 评测结果 AAAAAATTTT
题目名称 瑞士轮 最终得分 60
用户昵称 WHZ0325 运行时间 4.501 s
代码语言 C++ 内存使用 2.60 MiB
提交时间 2016-10-17 20:02:49
显示代码纯文本
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("swiss.in");
ofstream fout("swiss.out");
int n,r,q;
struct com {
	int tag;
	int score;
	int value;
} array[200010];
bool cmp(const com a,const com b) {
	if(a.score>b.score) {
		return true;
	}
	if(a.score<b.score) {
		return false;
	}
	return a.tag<b.tag;
}
inline void fight(com &a,com &b) {
	if(a.value>b.value) {
		a.score++;
	}
	else {
		b.score++;
	}
}
int main() {
	fin>>n>>r>>q;
	for(int i=1;i<=2*n;i++) {
		array[i].tag=i;
		fin>>array[i].score;
	}
	for(int i=1;i<=2*n;i++) {
		fin>>array[i].value;
	}
	while(r--) {
		sort(array+1,array+1+2*n,cmp);
		for(int i=1;i<=2*n;i+=2) {
			fight(array[i],array[i+1]);
		}
	}
	sort(array+1,array+1+2*n,cmp);
	fout<<array[q].tag<<endl;
	fin.close();
	fout.close();
	return 0;
}