QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#116195#5280. Depot RearrangementIrisu#75 40ms28088kbC++171.5kb2023-06-28 11:56:552024-05-31 18:20:17

Judging History

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

  • [2024-05-31 18:20:17]
  • 评测
  • 测评结果:75
  • 用时:40ms
  • 内存:28088kb
  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-06-28 11:56:55]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;

#define rep(i,a,b) for(int i=(a),i##end=(b);i<=i##end;++i)
#define per(i,a,b) for(int i=(a),i##end=(b);i>=i##end;--i)

#define pb push_back

typedef vector<int>vi;
typedef pair<int,int>pii;

int n,m,A[405*405];
vi pos[405][405];

int ecnt,h[805];
struct edges{
  int nxt,to;
}E[405*405*2];
void addline(int u,int v){
  E[++ecnt]={h[u],v},h[u]=ecnt;
}
vi path;
bool vis[805];
void dfs(int u){
  vis[u]=1;
  for(int&i=h[u];i;){
    int v=E[i].to;
    i=E[i].nxt;
    dfs(v);
  }
  path.pb(u);
}

int main(){
  cin.tie(0);
  ios::sync_with_stdio(0);
  cin>>n>>m;
  rep(i,1,n*m)cin>>A[i];
  rep(i,1,n){
    vi vis(m+1,0);
    rep(j,1,m){
      int x=A[(i-1)*m+j];
      if(!vis[x]){
        vis[x]=1;
      }else{
        pos[i][x].pb((i-1)*m+j);
        addline(i,n+x);
      }
    }
    rep(x,1,m){
      if(!vis[x]){
        addline(n+x,i);
      }
    }
  }
  vector<pii>as;
  rep(s,1,n)if(!vis[s]){
    path.clear();
    dfs(s);
    reverse(path.begin(),path.end());
    vi cir;
    for(int i=1;i<(int)path.size();i+=2){
      int u=path[i-1];
      int x=path[i]-n;
//      printf("#buk %d, val %d\n",u,x);
      cir.pb(pos[u][x].back());
      pos[u][x].pop_back();
    }
    as.pb({n*m+1,cir.back()});
    per(i,cir.size()-1,1){
      as.pb({cir[i],cir[i-1]});
    }
    as.pb({n*m+1,cir[0]});
  }
  cout<<as.size()<<endl;
  for(auto[x,y]:as)cout<<x<<' '<<y<<endl;
  return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Runtime Error

input:

10 3
1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3


output:


result:


Test #2:

score: 5
Accepted
time: 2ms
memory: 7804kb

input:

5 4
1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4


output:

13
21 10
10 2
2 14
14 7
7 15
15 3
3 18
18 8
8 19
19 12
12 20
20 4
21 4

result:

ok both subtasks are correct!

Test #3:

score: 5
Accepted
time: 2ms
memory: 8740kb

input:

10 10
8 10 10 3 7 3 5 6 1 4 3 8 2 9 1 8 4 2 7 3 10 7 9 2 1 10 10 9 1 2 9 7 4 5 2 9 10 5 7 6 6 8 6 8 4 2 9 1 2 8 6 1 4 2 2 1 5 6 3 10 10 7 9 4 8 9 8 2 5 6 4 3 1 6 3 3 10 7 7 5 3 6 8 5 9 4 6 7 9 4 10 5 3 4 5 1 1 7 8 5


output:

32
101 18
18 26
26 16
16 43
43 27
27 87
87 3
3 28
28 75
75 55
55 36
36 20
20 38
38 44
44 76
76 89
89 49
49 39
39 29
29 95
95 66
66 97
97 30
30 90
90 56
56 50
50 100
100 58
58 79
79 67
67 6
101 6

result:

ok both subtasks are correct!

Test #4:

score: 0
Runtime Error

input:

100 10
1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 9 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10...

output:


result:


Test #5:

score: 0
Runtime Error

input:

200 100
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 ...

output:


result:


Test #6:

score: 5
Accepted
time: 0ms
memory: 10012kb

input:

201 20
20 18 5 5 1 7 8 17 12 10 20 12 13 19 16 2 9 8 20 20 19 10 17 20 9 11 15 17 9 2 3 4 17 10 7 20 7 19 17 11 20 2 1 13 11 9 11 6 10 8 11 3 2 16 9 15 16 12 13 6 5 13 4 13 3 8 20 18 10 3 14 1 11 20 17 17 2 11 20 1 4 10 3 3 9 13 7 10 19 16 14 16 9 19 14 15 12 9 20 12 2 19 18 2 7 7 2 12 10 8 20 18 16...

output:

1401
4021 47
47 28
28 64
64 29
29 4
4 84
84 33
33 164
164 88
88 51
51 344
344 34
34 168
168 36
36 92
92 53
53 206
206 104
104 70
70 37
37 231
231 11
11 262
262 74
74 126
126 106
106 76
76 210
210 245
245 38
38 303
303 290
290 252
252 93
93 144
144 384
384 369
369 306
306 446
446 326
326 107
107 525
...

result:

ok both subtasks are correct!

Test #7:

score: 0
Runtime Error

input:

300 300
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 ...

output:


result:


Test #8:

score: 5
Accepted
time: 8ms
memory: 11564kb

input:

301 40
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1...

output:

11624
12041 322
322 42
42 362
362 82
82 402
402 122
122 442
442 162
162 482
482 202
202 522
522 242
242 562
562 2
2 642
642 602
602 43
43 643
643 83
83 682
682 123
123 722
722 163
163 762
762 203
203 802
802 243
243 842
842 282
282 683
683 323
323 723
723 363
363 763
763 403
403 803
803 443
443 843
...

result:

ok both subtasks are correct!

Test #9:

score: 5
Accepted
time: 8ms
memory: 12180kb

input:

400 100
11 65 1 79 15 18 79 46 9 30 71 53 58 55 94 73 39 16 6 91 49 30 23 30 28 81 90 48 97 54 79 30 94 18 42 77 44 36 5 48 55 97 79 36 41 59 79 71 32 59 3 10 63 52 44 41 9 46 31 31 56 87 60 80 12 51 15 78 41 65 95 34 29 83 46 64 37 53 98 17 41 45 36 73 20 53 48 80 57 54 57 72 39 56 98 6 10 78 11 72...

output:

14592
40001 512
512 113
113 7
7 206
206 22
22 210
210 118
118 319
319 24
24 1005
1005 215
215 713
713 31
31 125
125 418
418 613
613 218
218 128
128 715
715 32
32 513
513 329
329 129
129 33
33 917
917 130
130 34
34 133
133 219
219 40
40 520
520 230
230 136
136 330
330 720
720 627
627 138
138 920
920 ...

result:

ok both subtasks are correct!

Test #10:

score: 5
Accepted
time: 0ms
memory: 10140kb

input:

40 160
17 2 3 4 5 6 7 91 9 10 154 12 103 14 15 16 17 25 19 58 21 8 23 24 52 26 27 58 120 105 50 55 104 32 35 36 37 38 45 10 41 42 43 44 45 71 47 48 49 34 140 52 53 54 115 44 28 58 59 60 61 62 63 64 132 66 67 68 69 70 71 69 24 74 75 76 77 133 79 80 81 82 100 84 31 86 87 88 100 90 91 92 93 94 95 96 97...

output:

1316
6401 338
338 1936
1936 977
977 806
806 182
182 1328
1328 2105
2105 17
17 831
831 666
666 189
189 504
504 1174
1174 28
28 192
192 40
40 353
353 1470
1470 45
45 2417
2417 195
195 839
839 705
705 52
52 1178
1178 714
714 56
56 366
366 1803
1803 205
205 1340
1340 226
226 841
841 229
229 1631
1631 58...

result:

ok both subtasks are correct!

Test #11:

score: 5
Accepted
time: 4ms
memory: 11416kb

input:

400 100
88 82 9 2 90 1 83 32 32 79 8 79 63 67 85 82 50 63 69 2 7 91 21 90 69 3 39 78 66 83 96 53 24 65 56 63 90 54 35 55 94 22 76 12 54 55 5 49 91 73 8 19 64 54 39 23 13 27 34 4 81 52 13 11 36 45 3 50 82 81 42 50 75 15 99 70 29 26 70 66 34 15 42 83 16 19 19 12 76 1 68 49 7 17 64 37 98 34 99 37 34 64...

output:

14611
40001 119
119 1115
1115 9
9 132
132 12
12 311
311 16
16 207
207 18
18 134
134 20
20 507
507 317
317 24
24 820
820 138
138 329
329 709
709 140
140 25
25 331
331 30
30 603
603 419
419 36
36 141
141 339
339 1314
1314 727
727 430
430 37
37 905
905 340
340 45
45 1421
1421 341
341 208
208 347
347 14...

result:

ok both subtasks are correct!

Test #12:

score: 5
Accepted
time: 7ms
memory: 10392kb

input:

301 20
8 1 1 1 1 1 1 17 1 9 1 5 1 1 1 1 13 1 9 1 18 1 1 16 1 15 5 19 1 8 11 10 1 1 1 1 18 4 1 1 1 1 16 1 1 1 12 10 1 1 1 14 11 13 1 1 1 1 1 1 10 1 1 1 1 1 1 19 14 1 1 1 5 1 1 1 1 13 1 18 1 1 4 1 1 1 1 1 1 1 1 1 1 16 16 10 1 14 18 1 1 1 7 1 1 1 1 6 9 1 13 1 1 1 2 1 1 1 1 1 1 10 1 1 1 17 1 10 10 1 12 ...

output:

4260
6021 322
322 23
23 343
343 42
42 362
362 63
63 383
383 82
82 402
402 123
123 423
423 143
143 445
445 162
162 482
482 203
203 502
502 3
3 522
522 242
242 544
544 262
262 602
602 4
4 622
622 25
25 642
642 44
44 665
665 64
64 723
723 84
84 742
742 102
102 763
763 124
124 784
784 144
144 802
802 5
...

result:

ok both subtasks are correct!

Test #13:

score: 5
Accepted
time: 15ms
memory: 14352kb

input:

300 300
215 159 263 206 201 183 286 56 142 10 231 214 34 54 263 250 169 208 239 148 104 22 244 17 74 68 184 52 2 30 42 83 222 106 25 152 37 225 213 213 69 273 91 221 207 48 166 28 221 50 46 64 10 254 207 109 206 144 270 291 195 197 253 235 141 186 102 68 52 24 38 6 181 44 256 200 77 233 285 163 223 ...

output:

32648
90001 631
631 15
15 309
309 1213
1213 312
312 40
40 916
916 49
49 945
945 1813
1813 962
962 53
53 332
332 55
55 2726
2726 637
637 335
335 644
644 350
350 648
648 2730
2730 354
354 660
660 360
360 1521
1521 1816
1816 361
361 57
57 966
966 68
68 363
363 2148
2148 1217
1217 970
970 366
366 69
69 ...

result:

ok both subtasks are correct!

Test #14:

score: 5
Accepted
time: 32ms
memory: 20172kb

input:

201 400
1 1 1 1 1 152 1 1 1 1 1 1 1 33 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 300 154 1 1 147 1 1 1 383 186 1 1 90 256 1 1 1 1 1 1 1 63 1 1 1 1 208 1 1 1 1 31 1 1 1 1 1 1 1 127 1 1 29 216 397 393 1 1 1 1 1 1 279 1 1 1 1 55 1 1 215 249 1 1 1 1 1 1 172 1 1 1 1 1 1 1 1 1 1 1 1 349 1 331 1 1 1 1 1 1 1 34...

output:

63990
80401 404
404 2
2 802
802 3
3 1602
1602 1203
1203 4
4 2002
2002 1204
1204 803
803 405
405 1603
1603 804
804 1604
1604 5
5 2402
2402 1205
1205 406
406 2003
2003 7
7 809
809 2004
2004 1605
1605 408
408 2404
2404 8
8 3202
3202 1206
1206 2005
2005 409
409 810
810 2802
2802 9
9 1208
1208 811
811 24...

result:

ok both subtasks are correct!

Test #15:

score: 0
Runtime Error

input:

400 400
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 ...

output:


result:


Test #16:

score: 5
Accepted
time: 4ms
memory: 11664kb

input:

301 200
50 129 146 60 183 51 47 77 26 73 1 45 1 44 149 1 81 196 17 16 163 35 159 71 1 94 161 138 138 27 76 1 102 42 5 186 176 1 111 198 37 63 81 155 95 164 132 135 155 194 126 98 31 34 121 19 175 148 33 105 25 122 91 165 1 69 1 197 12 98 1 155 5 53 42 1 60 98 78 61 155 13 1 171 102 152 95 61 87 200 ...

output:

23506
60201 1228
1228 220
220 621
621 13
13 221
221 1234
1234 2808
2808 16
16 231
231 3208
3208 232
232 4812
4812 25
25 627
627 405
405 244
244 29
29 630
630 416
416 824
824 417
417 633
633 1246
1246 637
637 5235
5235 246
246 1011
1011 1247
1247 419
419 250
250 830
830 438
438 252
252 6224
6224 253
...

result:

ok both subtasks are correct!

Test #17:

score: 5
Accepted
time: 27ms
memory: 22896kb

input:

201 400
1 1 1 1 1 1 1 1 1 1 1 1 1 263 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 246 1 1 1 1 1 1 1 1 1 1 1 1 1 1 107 1 1 1 1 1 1 1 1 57 1 1 1 1 1 1 1 224 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 90 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

output:

77869
80401 802
802 2
2 1202
1202 803
803 402
402 1203
1203 3
3 1604
1604 804
804 404
404 1605
1605 4
4 2002
2002 5
5 2402
2402 6
6 2802
2802 7
7 3202
3202 8
8 3602
3602 9
9 4002
4002 10
10 4402
4402 11
11 4802
4802 12
12 5202
5202 13
13 5602
5602 15
15 6003
6003 16
16 6402
6402 17
17 6802
6802 18
1...

result:

ok both subtasks are correct!

Test #18:

score: 5
Accepted
time: 20ms
memory: 16624kb

input:

400 300
75 26 289 176 131 196 124 8 230 157 247 265 13 2 210 141 17 200 187 83 21 22 118 144 232 26 284 75 48 30 132 32 65 34 72 36 73 286 164 40 41 261 65 270 221 12 139 48 49 143 91 39 17 258 275 56 151 194 282 55 228 266 296 64 22 232 67 142 69 152 10 102 109 45 75 49 283 112 78 283 81 236 169 22...

output:

43105
120001 615
615 1552
1552 1216
1216 617
617 1241
1241 26
26 323
323 28
28 3616
3616 43
43 325
325 48
48 337
337 1554
1554 53
53 5138
5138 645
645 1555
1555 1248
1248 351
351 1253
1253 354
354 1259
1259 924
924 65
65 2444
2444 1269
1269 372
372 66
66 1556
1556 647
647 75
75 649
649 1823
1823 156...

result:

ok both subtasks are correct!

Test #19:

score: 5
Accepted
time: 40ms
memory: 28088kb

input:

333 399
1 1 1 1 1 1 1 28 1 1 1 1 1 1 161 1 17 1 1 1 1 262 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 43 1 1 1 1 1 70 1 1 1 142 1 1 1 1 1 1 1 1 1 1 1 1 70 1 1 1 1 1 1 278 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 245 1 1 1 1 1 1 33 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 106 1 1 1 1 268 1 1 1 172 1 1 1 1 1 312 1 286 1 1 1 1 ...

output:

114795
132868 1199
1199 800
800 401
401 1200
1200 404
404 2
2 1598
1598 405
405 1599
1599 801
801 1600
1600 1201
1201 3
3 1997
1997 406
406 1998
1998 1601
1601 4
4 2000
2000 5
5 2397
2397 407
407 2398
2398 6
6 2796
2796 408
408 2001
2001 802
802 2399
2399 803
803 2797
2797 7
7 3194
3194 409
409 3196...

result:

ok both subtasks are correct!

Test #20:

score: 5
Accepted
time: 36ms
memory: 19940kb

input:

400 400
100 35 353 385 317 228 7 148 113 165 11 306 209 89 21 166 17 2 19 249 27 305 377 22 3 353 38 28 29 96 191 32 33 309 35 308 100 176 152 40 176 42 43 86 45 46 96 48 396 381 218 246 53 54 334 159 243 360 294 60 33 62 185 64 65 66 191 121 351 107 10 343 367 74 75 201 77 247 79 134 304 92 42 126 ...

output:

55816
160001 430
430 2828
2828 26
26 433
433 35
35 856
856 37
37 461
461 1228
1228 2033
2033 41
41 464
464 47
47 1247
1247 4837
4837 61
61 468
468 1630
1630 863
863 67
67 2428
2428 867
867 2064
2064 874
874 1634
1634 2831
2831 470
470 878
878 83
83 1255
1255 2434
2434 1651
1651 485
485 87
87 492
492...

result:

ok both subtasks are correct!