当时考场上服务器崩了,到结束前五分钟才出结果……最后当然是0分。

现在重新写了一遍,依然是暴力解法25分,找了一圈没看到有满分题解,泪目,先贴上来,等一个满分题解。

#include<stdio.h>
#include<iostream>
using namespace std;
int n,m,k,order,id,l,r,x,p;
struct space{
	int id;
	int x;
	int last;
}s[10000010];
int main()
{
	cin>>n>>m>>k;
	int j;
	for(int i=0;i<k;i++)
	{
		cin>>order;
		if(order==0)
		{
			cin>>id>>l>>r>>x;
			for(j=l;j<=r;j++)
			{
				if(s[j].id==0||s[j].id==id)
				{
					s[j].id=id;
					s[j].x=x;
				}
				else break;
			}
			if(j==l)cout<<-1<<endl;
			else cout<<--j<<endl;
		}
		if(order==1)
		{
			cin>>id>>l>>r;
			int flag=0;
			for(j=l;j<=r;j++)
			{
				if(s[j].id!=id)
				{
					flag=1;
					break;
				}
			}
			if(!flag)
			{
				for(j=l;j<=r;j++) 
				{
					s[j].id=0;	
					s[j].last=id;
				}
				cout<<"OK"<<endl;
			}
			else cout<<"FAIL"<<endl;
			
		}
		if(order==2)
		{
			cin>>id>>l>>r;
			int flag=0;
			for(j=l;j<=r;j++)
			{
				if(s[j].id!=0||s[j].last!=id)
				{
					flag=1;
					break;
				}
			}
			if(!flag)
			{
				for(j=l;j<=r;j++) 
				{
					s[j].id=id;	
				}
				cout<<"OK"<<endl;
			}
			else cout<<"FAIL"<<endl;
		}
		if(order==3)
		{
			cin>>p;
			if(!s[p].id)cout<<0<<" "<<0<<endl;
			else cout<<s[p].id<<" "<<s[p].x<<endl;
		}
	}
}

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐