35 TLE求助
查看原帖
35 TLE求助
464094
NEO_bone楼主2021/9/13 19:06

小声:虽然我开了O2得70吧 考试时遇到的

求大佬给下优化方案

#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
using namespace std;
struct bs{
	int p;long long t;
	bool f;
}at[100050];long long ans;int n;
int flag;
int main()
{
	/*freopen("transfer.in","r",stdin);
	freopen("transfer.out","w",stdout);*/
	scanf("%d",n);
	for(int i=1;i<=n;i++)
	{
		int  who;
		scanf("%d",who);
		if(who==0)
		{
			flag++;
			cin>>at[flag].p>>at[flag].t;
			ans+=at[flag].p;
		}
		else
		{
			int a;long long b;
			cin>>a>>b;
			bool a4=0;
			for(int i1=1;i1<=flag;i1++)
			{
				if(at[i1].p>=a&&b-     at[i1].t<=45&&at[i1].f==0)
				{
					at[i1].f=1;a4=1;
					break;	
					
				}
				
			}
			if(a4==0)
			{
				ans+=a;
			}
		}
	}
	cout<<ans;
	fclose(stdin);
	fclose(stdout);
	return 0;
}
2021/9/13 19:06
加载中...