QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#475998 | #9114. Black or White 2 | ucup-team3519# | WA | 0ms | 3628kb | C++20 | 3.3kb | 2024-07-13 17:28:04 | 2024-07-13 17:28:04 |
Judging History
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