数据过水!暴力可过!
查看原帖
数据过水!暴力可过!
691641
Grow_楼主2024/7/16 10:44

code:

#include<bits/stdc++.h>
using namespace std;
inline int read(){
    register char c = getchar();
	register int f = 1,x = 0;
    while(c<'0'||c>'9'){
    	if(c=='-')f = -1;
		c = getchar();
	} 
    while(c>='0'&&c<='9')x = (x<<3)+(x<<1)+c-'0',c = getchar();
    return x*f;
}
inline void write(register int x){
    register int cnt = 20,st[25];
    if(x==0)putchar('0');
	while(x){
		st[cnt--] = char(x%10+'0');
		x/=10;
	}
	while(cnt<20)putchar(st[++cnt]);
	return;
}
int n,m,op,x,y;
bool f[50005]; 
int main(){
	cin >> n >> m;
	while(m--){
		op = read();
		x = read();
		if(op==1){
			int cnt = 0,id = 1;
			for(int i = 1;i<=x;i++)cnt+=f[i];
			while(cnt){
				cnt+=f[id+x];
				cnt-=f[id++];
			}
			if(id+x-1>n)cout << "0\n";
			else{
				write(id);
				putchar('\n');
				for(int i = id;i<=id+x-1;i++)f[i] = 1;
			}
		}
		else{
			y = read();
			for(int i = x;i<=x+y-1;i++)f[i] = 0;
		}
	}
    return 0;
}
2024/7/16 10:44
加载中...