QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#243154 | #7740. Puzzle: Question Mark | brothernumb2002 | RE | 286ms | 6660kb | C++14 | 3.6kb | 2023-11-07 21:35:39 | 2023-11-07 21:35:40 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll read() {
ll x=0, f=1; char ch=' ';
while(!isdigit(ch)) { ch=getchar(); if(ch=='-') f=-1; }
while(isdigit(ch)) x=(x<<3)+(x<<1)+(ch-48), ch=getchar();
return x*f;
}
int n, tot, a[1005][1005];
void prin24(int i, int j) {
tot++;
a[i][j]=a[i][j+1]=a[i+1][j]=a[i+1][j+2]=tot;
tot++;
a[i][j+2]=a[i][j+3]=a[i+1][j+3]=a[i+1][j+1]=tot;
}
void prin42(int i, int j) {
tot++;
a[i][j]=a[i][j+1]=a[i+1][j]=a[i+2][j+1]=tot;
tot++;
a[i+2][j]=a[i+3][j]=a[i+3][j+1]=a[i+1][j+1]=tot;
}
void prin33(int i, int j) {
tot++;
a[i][j+1]=a[i][j+2]=a[i+1][j+2]=a[i+2][j+1]=tot;
tot++;
a[i+1][j]=a[i+1][j+1]=a[i+2][j]=a[i+2][j+2]=tot;
}
void prin2(int i, int j) {
tot++;
a[i][j]=a[i][j+1]=a[i+1][j]=a[i+1][j+2]=tot;
tot++;
a[i+1][j+1]=a[i+1][j+3]=a[i+2][j+2]=a[i+2][j+3]=tot;
}
void prin99(int i, int j) {
prin24(i, j); prin42(i, j+7);
prin42(i+5, j), prin24(i+7, j+5);
prin33(i+4, j+6);
tot++; a[i+0][j+4]=a[i+0][j+5]=a[i+1][j+4]=a[i+1][j+6]=tot;
tot++; a[i+0][j+6]=a[i+1][j+5]=a[i+2][j+5]=a[i+2][j+6]=tot;
tot++; a[i+2][j+0]=a[i+3][j+1]=a[i+3][j+2]=a[i+2][j+2]=tot;
tot++; a[i+2][j+1]=a[i+3][j+0]=a[i+4][j+0]=a[i+4][j+1]=tot;
prin2(i+2, j+3); prin2(i+4, j+2);
tot++; a[i+6][j+2]=a[i+6][j+3]=a[i+7][j+2]=a[i+8][j+3]=tot;
tot++; a[i+7][j+3]=a[i+7][j+4]=a[i+8][j+2]=a[i+8][j+4]=tot;
}
void prin(int i, int j, int x) {
if(x==9) {
prin99(i, j);
return;
}
prin(i+2, j, x-4);
for(int tmp=j;tmp<j+x-5;tmp+=4) prin24(i, tmp), prin24(i+x-2, tmp);
tot++; a[i][j+x-5]=a[i][j+x-4]=a[i+1][j+x-5]=a[i+2][j+x-4]=tot;
tot++; a[i+1][j+x-4]=a[i+2][j+x-3]=a[i+3][j+x-4]=a[i+3][j+x-3]=tot;
for(int tmp=i+3;tmp<i+x-6;tmp+=4) prin42(tmp, j+x-2), prin42(tmp+1, j+x-4);
tot++; a[i][j+x-3]=a[i][j+x-2]=a[i+1][j+x-3]=a[i+1][j+x-1]=tot;
tot++; a[i][j+x-1]=a[i+1][j+x-2]=a[i+2][j+x-2]=a[i+2][j+x-1]=tot;
prin33(i+x-3, j+x-5);
prin42(i+x-4, j+x-2);
tot++; a[i+x-5][j+x-4]=a[i+x-4][j+x-4]=a[i+x-4][j+x-3]=a[i+x-5][j+x-2]=tot;
tot++; a[i+x-5][j+x-3]=a[i+x-5][j+x-1]=a[i+x-6][j+x-2]=a[i+x-6][j+x-1]=tot;
}
void solve() {
tot=0;
n=read();
for(int i=0;i<n;i++) {
for(int j=0;j<n;j++) {
a[i][j]=0;
}
}
if(n<=2);
else if(n==3) {
prin33(0, 0);
}
else if(n==5) {
prin33(0, 0);
prin42(0, 3);
tot++;
a[3][0]=a[3][1]=a[4][0]=a[4][2]=tot;
}
else if(n==7) {
prin33(0, 0);
prin42(0, 3);
prin42(0, 5);
prin24(5, 0);
prin33(4, 4);
tot++;
a[3][0]=a[3][1]=a[4][0]=a[4][2]=tot;
}
else if(n%4==0) {
for(int i=0;i<n/2;i++) {
for(int j=0;j<n/4;j++) {
prin24(i*2, j*4);
}
}
}
else if(n%4==2) {
for(int i=0;i<n/2;i++) {
for(int j=0;j<n/4;j++) {
prin24(i*2, j*4);
}
}
for(int i=0;i<n/4;i++) {
prin42(i*4, n-2);
}
}
else if(n%4==1) {
prin(0, 0, n);
}
else if(n%4==3) {
prin(0, 0, n-2);
for(int i=0;i<n-3;i+=4) prin42(i, n-2), prin24(n-2, i);
prin33(n-3, n-3);
}
printf("%d\n", tot);
for(int i=0;i<n;i++) {
for(int j=0;j<n;j++) {
printf("%3d", a[i][j]);
if(j!=n-1) printf(" ");
}
puts("");
}
}
int main() {
int t=read();
while(t--) solve();
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3600kb
input:
2 3 4
output:
2 0 1 1 2 2 1 2 1 2 4 1 1 2 2 1 2 1 2 3 3 4 4 3 4 3 4
result:
ok Correct. (2 test cases)
Test #2:
score: 0
Accepted
time: 275ms
memory: 5960kb
input:
246 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 ...
output:
0 0 0 0 0 0 0 2 0 1 1 2 2 1 2 1 2 4 1 1 2 2 1 2 1 2 3 3 4 4 3 4 3 4 5 0 1 1 3 3 2 2 1 3 4 2 1 2 4 3 5 5 0 4 4 5 0 5 0 0 8 1 1 2 2 7 7 1 2 1 2 7 8 3 3 4 4 8 ...
result:
ok Correct. (246 test cases)
Test #3:
score: 0
Accepted
time: 281ms
memory: 5048kb
input:
64 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310
output:
15252 14521 14521 14522 14522 14525 14525 14526 14526 14529 14529 14530 14530 14533 14533 14534 14534 14537 14537 14538 14538 14541 14541 14542 14542 14545 14545 14546 14546 14549 14549 14550 14550 14553 14553 14554 14554 14557 14557 14558 14558 14561 14561 14562 14562 14565 14565 14566 14566 14569 ...
result:
ok Correct. (64 test cases)
Test #4:
score: 0
Accepted
time: 284ms
memory: 6364kb
input:
45 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355
output:
24180 23257 23257 23258 23258 23261 23261 23262 23262 23265 23265 23266 23266 23269 23269 23270 23270 23273 23273 23274 23274 23277 23277 23278 23278 23281 23281 23282 23282 23285 23285 23286 23286 23289 23289 23290 23290 23293 23293 23294 23294 23297 23297 23298 23298 23301 23301 23302 23302 23305 ...
result:
ok Correct. (45 test cases)
Test #5:
score: 0
Accepted
time: 286ms
memory: 6660kb
input:
35 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390
output:
31684 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 24 24 25 25 26 26 27 27 28 28 29 29 30 30 31 31 32 32 33 33 34 34 35 35 36 36 37 3...
result:
ok Correct. (35 test cases)
Test #6:
score: 0
Accepted
time: 284ms
memory: 5988kb
input:
30 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420
output:
38220 37057 37057 37058 37058 37061 37061 37062 37062 37065 37065 37066 37066 37069 37069 37070 37070 37073 37073 37074 37074 37077 37077 37078 37078 37081 37081 37082 37082 37085 37085 37086 37086 37089 37089 37090 37090 37093 37093 37094 37094 37097 37097 37098 37098 37101 37101 37102 37102 37105 ...
result:
ok Correct. (30 test cases)
Test #7:
score: -100
Runtime Error
input:
2 2000 1000