제출 #1216481

#제출 시각아이디문제언어결과실행 시간메모리
1216481Ak_16Chorus (JOI23_chorus)C++20
0 / 100
0 ms576 KiB
#include <bits/stdc++.h> using namespace std; int main(){ int t,l,r,d; int ans[305][305]; cin>>t; while(t--){ cin>>l>>r>>d; for(int i=0; i<=r; i++){ for(int j=0; j<=r; j++){ ans[i][j] = 0; } } if(d==1){cout<<-1<<endl;} else if(d>=3) { cout<<r<<endl; int qu = (r-1)/d; int re = r-1 - d*qu; for(int i=1; i<=qu+re; i++){ for(int j=i+1; j<=1+qu+re; j++){ ans[i][j] = 1; } } for(int i=qu+re+1; i<r; i++){ for(int j=i+1; j<=min(r, i+qu); j++){ ans[i][j] = 1; } } for(int i=r; i>=1; i--){ for(int j=i-1; j>=1; j--){ if(ans[j][i]==0){ ans[i][j] = 1; } } } for(int i=1; i<=r; i++){ for(int j=1; j<=r; j++){ cout<<ans[i][j]; } cout<<endl; } } else { if(l%2==1||r>l){ int f; if(l%2==1){ f = l; } else {f = l+1;} for(int i=0; i<f; i++){ for(int j=i+1; j<=i+f/2; j++){ ans[i][j%f] = 1; } } cout<<f<<endl; for(int i=0; i<f; i++){ for(int j=0; j<f; j++){ cout<<ans[i][j]; } cout<<endl; } } else { if(l<=4){ cout<<-1<<endl; } else { ans[1][5] = 1; ans[1][6] = 1; ans[2][1] = 1; ans[2][6] = 1; ans[3][1] = 1; ans[3][2] = 1; ans[3][5] = 1; ans[4][1] = 1; ans[4][2] = 1; ans[4][3] = 1; ans[5][2] = 1; ans[5][4] = 1; ans[6][3] = 1; ans[6][4] = 1; ans[6][5] = 1; for(int i=8; i<=l; i+=2){ ans[i][i-1] = 1; ans[i-1][i] = 0; for(int j=1; j<=i-2; j++){ ans[j][i] = 1; ans[i][j] = 0; ans[i-1][j] = 1; ans[j][i-1] = 0; } } cout<<l<<endl; for(int i=1; i<=l; i++){ for(int j=1; j<=l; j++){ cout<<ans[i][j]; } cout<<endl; } } } } } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...