⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2846960_wa.cpp

📁 北大大牛代码 1240道题的原代码 超级权威
💻 CPP
字号:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int a[181];
int n;
int mark[181];

int main()
{
	int i, t, num, tot, ans, inf;
	int ta, tmp1, tmp2, tmp3;

	while(scanf("%d",&n)==1)
	{
		inf = n*1000;
		tot = 0;
		n *= 3;
		for(i = 1; i <= n; i++)
			scanf("%d",&a[i]),tot+=a[i];
		t = 10000;
		while(t--)
		{	
			ans = 0;
			memset(mark,0,sizeof(mark));
			num = tmp1 = 0;
			while(num<n/3)
			{
				ta = (rand()%n+n)%n+1;
				if(mark[ta]==0)
				{
					num++;
					mark[ta] = 1;
					tmp1 += a[ta];
				}
			}
			num = tmp2 = 0;
			while(num<n/3)
			{
				ta = (rand()%n+n)%n+1;
				if(mark[ta]==0)
				{
					num++;
					mark[ta] = 2;
					tmp2 += a[ta];
				}
			}
			tmp3 = tot-tmp1-tmp2;
			if(tmp1*2>inf)	ans++;
			if(tmp2*2>inf)	ans++;
			if(tmp3*2>inf)	ans++;
			if(ans>1)
				break;
		}
		for(ta = 0; ta < 3; ta++)
			for(i = 1; i <= n; i++)
				if(mark[i]==ta)
					printf("%d\n",i);
	}
	return 0;
}

⌨️ 快捷键说明

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