10PTS 求助
查看原帖
10PTS 求助
442042
fortyyearslater楼主2022/3/20 22:42
除了第一个测试点以外全TLE了
#include <bits/stdc++.h>
using namespace std;
struct basket
{
	int code;
	int type;
	int isused;
}a[2000001];
bool cmp1(basket x,basket y)
{
	if(x.isused!=y.isused)
	{
		return x.isused>y.isused;	
	}
	return x.code>y.code;
}
bool cmp2(basket x,basket y)
{
	return x.code<y.code;	
}
void reset(basket* a,int &n,int &sum,int &times)
{
	int i;
	sort(a+1,a+1+n,cmp1);
	n=n-sum;
	times=times+sum;
	sort(a+1,a+1+n,cmp2);
	sum=0;
}
int n,i,p,q,cnt,t=1,sum,times;
int main()
{
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		scanf("%d",&a[i].type);
		a[i].code=i;
	}
	cnt=n;
	while(times!=cnt)
	{
		for(i=1;i<=n;i++)
		{
			if(a[i].type!=a[i-1].type)
			{
				sum++;
				printf("%d ",a[i].code);
				a[i].isused=-1;
			}
		}
		printf("\n");	
		reset(a,n,sum,times);
	}
	return 0;
}
2022/3/20 22:42
加载中...