2846960_wa.cpp
来自「北大大牛代码 1240道题的原代码 超级权威」· C++ 代码 · 共 61 行
CPP
61 行
#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 + =
减小字号Ctrl + -
显示快捷键?