pku2454.cpp

来自「这是ACM 方面的资料 是PKU的 北京大学的出来的」· C++ 代码 · 共 69 行

CPP
69
字号
#include <stdio.h>
#include <algorithm>
#include <stdlib.h>
using namespace std;

typedef struct 
{
	int id;
	int n;
} City;

City c[200];
int N;

bool cp(City a, City b)
{
	return a.n > b.n;
}

void Solve()
{
	int i;
	int sum1, sum2;
	City tmp;
	int id1, id2;
	for (i = 0; i < N * 3; i++)
	{
		scanf("%d", &c[i].n);
		c[i].id = i + 1;
	}
	sort(c, c + 3 * N, cp);
	sum1 = 0;
	sum2 = 0;
	for (i = 0; i < N; i++)
	{
		sum1 += c[i].n;
		sum2 += c[i + N].n;
	}
	while (1)
	{
		id1 = rand()%N;
		id2 = rand()%N + N;
		tmp = c[id1];
		c[id1] = c[id2];
		c[id2] = tmp;
		sum1 = sum1 + c[id1].n - c[id2].n;
		sum2 = sum2 + c[id2].n - c[id1].n;
		scanf("%*c");
		if (sum1 > N * 500 && sum2 > N * 500)
		{
			for (i = 0; i < 3 * N; i++)
			{
				printf("%d\n", c[i].id);
			}
			return;
		}
	}
}

int main()
{
	while (scanf("%d", &N) != -1)
	{
		Solve();
	}
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?