CSP202112-4——磁盘文件操作 c++ 25分
·
当时考场上服务器崩了,到结束前五分钟才出结果……最后当然是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;
}
}
}
更多推荐
所有评论(0)