QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#475998#9114. Black or White 2ucup-team3519#WA 0ms3628kbC++203.3kb2024-07-13 17:28:042024-07-13 17:28:04

Judging History

你现在查看的是最新测评结果

  • [2024-07-13 17:28:04]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3628kb
  • [2024-07-13 17:28:04]
  • 提交

answer

#pragma GCC optimize(3,"Ofast","inline")
#include<iostream>
#include<string>
#include<algorithm>
#include<queue>
using namespace std;
#define ll long long
const int N=1505;
const ll mod=998244353;
ll qpow(ll a,ll b){
	ll ans=1;
	if(b==0)
	return 1;
	if(b%2)
	ans=a;
	ll t=qpow(a,b/2);
	return t*t%mod*ans%mod;
}
ll inv(ll a){
	return qpow(a,mod-2);
}
int a[N][N];
void solve(){
	ll n,m,k;
	cin>>n>>m>>k;
	int swaptag=0;
	int tag01=0;
	
	if(n<m){
		swap(n,m);
		swaptag=1;
	}
	if(2*k>n*m){
		k=n*m-k;
		tag01=1;
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			a[i][j]=0;
		}
	}
	if(n>=5){
		if(k<=m){
			for(int i=1;i<=k;i++){
				if(i%2==0){
					a[1][i]=1;
				}
				else{
					a[n][i]=1;
				}
			}
		}
		else if(k<2*m){
			int d=k;
			if(d%2==0){
				d--,a[n][m]=1;
			}
			for(int i=1;i<=n;i++){
				for(int j=1;j<=m;j++){
					if(i+j==(d/2+1)||(i+j)==(d/2+2)){
						a[i][j]=1;
					}
				}
			}
		}
		else{
			int d=k/m,lft=k%m;
			for(int i=1;i<=m;i++){
				if(i%2==0){
					for(int j=2;j<=d+1;j++)
					a[j][i]=1;
				}
				else{
					for(int j=1;j<=d;j++)
					a[j][i]=1;
				}
			}
			for(int i=1;i<=lft;i++){
				if(i%2==0){
					a[1][i]=1;
				}
				else{
					a[n][i]=1;
				}
			}
		}
	}
	else if(n==4){
		if(m==4){
			if(k==1){
				a[1][1]=1;
			}
			else if(k==2){
				a[1][1]=a[4][4]=1;
			}
			else if(k==3){
				a[1][1]=a[1][2]=a[2][1]=1;
			}
			else if(k==4){
				a[1][1]=a[1][2]=a[2][1]=a[4][4]=1;
			}
			else if(k==5){
				a[1][2]=a[1][3]=a[2][1]=a[2][2]=a[3][1]=1;
			}
			else if(k==6){
				a[1][1]=a[1][2]=a[1][3]=a[2][1]=a[2][2]=a[3][1]=1;
			}
			else if(k==7){
				a[4][4]=a[1][1]=a[1][2]=a[1][3]=a[2][1]=a[2][2]=a[3][1]=1;
			}
			else if(k==8){
				a[1][1]=a[1][2]=a[1][3]=a[2][2]=a[3][1]=a[3][2]=a[3][3]=a[4][2]=1;
			}
		}
		else if(m==3){
			if(k==1){
				a[1][1]=1;
			}
			else if(k==2){
				a[1][1]=a[4][3]=1;
			}
			else if(k==3){
				a[1][1]=a[1][2]=a[2][1]=1;
			}
			else if(k==4){
				a[1][1]=a[1][2]=a[2][1]=a[4][3]=1;
			}
			else if(k==5){
				a[1][2]=a[1][3]=a[2][1]=a[2][2]=a[3][1]=1;
			}
			else if(k==6){
				a[1][1]=a[1][2]=a[1][3]=a[2][1]=a[2][2]=a[3][1]=1;
			}
		}
		else if(m==2){
			if(k==1){
				a[1][1]=1;
			}
			else if(k==2){
				a[1][1]=a[4][2]=1;
			}
			else if(k==3){
				a[1][1]=a[1][2]=a[2][1]=1;
			}
			else if(k==4){
				a[1][1]=a[1][2]=a[2][1]=a[4][2]=1;
			}
		}
	}
	else if(n==3){
		if(m==3){
			if(k==4){
				a[1][1]=a[1][2]=a[2][1]=a[3][3]=1;
			}
			else if(k==3){
				a[1][1]=a[1][2]=a[2][1]=1;
			}
			else if(k==2){
				a[1][1]=a[3][3]=1;
			}
			else if(k==1){
				a[1][1]=1;
			}
		}
		else if(m==2){
			if(k==3){
				a[1][1]=a[1][2]=a[2][1]=1;	
			}
			else if(k==2){
				a[1][1]=a[3][2]=1;
			}
			else if(k==1){
				a[1][1]=1;
			}
		}
	}
	else if(n==2){
		if(m==2){
			if(k>=1)a[1][1]=1;
			if(k>=2)a[1][2]=1;
		}
	}
	if(swaptag){
		for(int i=1;i<=m;i++){
			for(int j=1;j<=n;j++){
				cout<<(a[j][i]+tag01)%2<<' ';
			}
			cout<<'\n';
		}
	}
	else{
		for(int i=1;i<=n;i++){
			for(int j=1;j<=m;j++){
				cout<<(a[i][j]+tag01)%2<<' ';
			}
			cout<<'\n';
		}
	}
	
}
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	
	int t0;
	cin>>t0;
	for(int t=0;t<t0;t++){
		solve();
	}
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 3628kb

input:

2
2 2 2
2 3 0

output:

1 1 
0 0 
0 0 0 
0 0 0 

result:

wrong answer