求助我这超时代码怎么改能不超时
查看原帖
求助我这超时代码怎么改能不超时
1126485
XSZXcommander楼主2024/11/4 23:14
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstdio>
#include<stdlib.h>
#include<cstring>
using namespace std;
int n,r[1000000][3],a,b,ai,bi,c;
int main()
{
	cin>>n;
	c=n;
	for(int i=1;i<=n;i++)
	{
		cin>>r[i][0];
	}
	if(n==1)
	{
		cout<<1;
	}
	ag:
	a=2147483647;
	b=2147483647;
	for(int i=1;i<=n;i++)
	{
		if(r[i][0]<a&&r[i][2]==0)
		{
			a=r[i][0];
			ai=i;
		}
	}
	for(int i=1;i<=n;i++)
	{
		if(r[i][0]<b&&r[i][0]>r[ai][0]&&r[i][2]==0&&r[i][1]==0)
		{
			b=r[i][0];
			bi=i;
		}
	}
	if(bi==0)
	{
		cout<<c;
		return 0; 
	}
	r[ai][2]=1;
	r[bi][1]=1;
	ai=0;
	bi=0;
	c--;
	for(int i=1;i<=n;i++)
	{
		if(r[i][2]==0&&r[i][1]==0)
		{
			goto ag;
		}
	}
	cout<<c;
	return 0;
}
2024/11/4 23:14
加载中...