蒟蒻求hack

image
Problem - C - Codeforces
在刚刚结束的cf比赛中,我挂在TC,赛时调了1个小时仍未 hack 自己,求hack(死的不明不白

#include <bits/stdc++.h>
#define int long long
#define pii pair<int,int>
#define fi first
#define se second
#define ull unsigned long long
#define pb push_back
using namespace std;
int _,n,k,q,a[110],vis2[110];
struct que{
	int c,l,r;
}ask[110];
signed main() {
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	cin >> _;
	while(_--){
		cin >> n >> k >> q;
		for(int i = 1;i <= n;i ++)	a[i]=k,vis2[i]=0;
		for(int i = 1;i <= q;i ++){
			cin >> ask[i].c >> ask[i].l >> ask[i].r;
			if(ask[i].c==1){
				for(int j = ask[i].l;j <= ask[i].r;j ++){
					vis2[j]=1;
				}
			}
		}
		for(int i = 1;i <= q;i ++){
			if(ask[i].c==2){
				int vis[k],s=k+1;
				for(int j = 0;j < k;j ++)	vis[j]=0;
				for(int j = ask[i].l;j <= ask[i].r;j ++){
					if(a[j]<k)	vis[a[j]]=1;
				}
				for(int j = 0;j < k;j ++){
					if(vis[j]==0){
						s=j;
						break;
					}
				}
				for(int j = ask[i].l;j <= ask[i].r;j ++){
					if(a[j]<k)	continue;
					if(vis2[j]==1){
						a[j]=k+1;
						continue;
					}
					a[j]=s;
					if(s<k)	vis[s]=1;
					while(s < k && vis[s]){
						s++;
					}
					if(s==k)	s++;
				}
			}
		}
		for(int i = 1;i <= n;i ++)	cout << a[i] << " ";
		cout << "\n";
	}
	return 0;
}
1 个赞

已被hack,此贴结

1
8 3 4
2 1 3
2 2 4
2 6 8
2 4 6