QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#487351 | #5280. Depot Rearrangement | Rafi22# | 100 ✓ | 26ms | 27176kb | C++20 | 1.6kb | 2024-07-22 20:23:36 | 2024-07-22 20:23:36 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#ifdef DEBUG
auto&operator<<(auto&o,pair<auto,auto>p){return o<<"("<<p.first<<", "<<p.second<<")";}
auto operator<<(auto&o,auto x)->decltype(x.end(),o){o<<"{";int i=0;for(auto e:x)o<<","+!i++<<e;return o<<"}";}
#define debug(X...)cerr<<"["#X"]: ",[](auto...$){((cerr<<$<<"; "),...)<<endl;}(X)
#else
#define debug(...){}
#endif
#define ll long long
#define ld long double
#define endl '\n'
#define st first
#define nd second
#define pb push_back
#define sz(x) (int)(x).size()
#define all(x) (x).begin(), (x).end()
#define FOR(i,l,r) for(int i=(l);i<=(r);i++)
#define ROF(i,r,l) for(int i=(r);i>=(l);i--)
int inf=1000000007;
ll infl=1000000000000000007;
ll mod=1000000007;
ll mod1=998244353;
const int N=407;
vector<int>V[N][N];
int x[N*N];
vector<pair<int,int>>G[2*N];
vector<int>ord;
void Euler(int v,int k)
{
while(sz(G[v])>0)
{
int u=G[v].back().st,t=G[v].back().nd;
G[v].pop_back();
Euler(u,t);
}
if(k!=-1) ord.pb(k);
}
signed main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n,m;
cin>>n>>m;
FOR(i,0,n*m-1)
{
cin>>x[i];
x[i]--;
V[i/m][x[i]].pb(i);
}
FOR(i,0,n-1)
{
FOR(j,0,m-1)
{
if(sz(V[i][j])==0) G[j+n].pb({i,-1});
FOR(l,1,sz(V[i][j])-1) G[i].pb({j+n,V[i][j][l]});
}
}
vector<pair<int,int>>ans;
FOR(i,0,n-1)
{
if(sz(G[i])==0) continue;
ord.clear();
Euler(i,-1);
ans.pb({ord[0],n*m});
FOR(j,1,sz(ord)-1) ans.pb({ord[j],ord[j-1]});
ans.pb({n*m,ord.back()});
}
cout<<sz(ans)<<endl;
for(auto [a,b]:ans) cout<<a+1<<" "<<b+1<<endl;
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Pretests
Final Tests
Test #1:
score: 5
Accepted
time: 1ms
memory: 3604kb
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:
0
result:
ok both subtasks are correct!
Test #2:
score: 5
Accepted
time: 1ms
memory: 3532kb
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 10 21 2 10 14 2 7 14 15 7 3 15 18 3 8 18 19 8 12 19 20 12 4 20 21 4
result:
ok both subtasks are correct!
Test #3:
score: 5
Accepted
time: 1ms
memory: 3616kb
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 18 101 38 18 29 38 75 29 30 75 90 30 49 90 39 49 20 39 43 20 6 43 28 6 67 28 56 67 66 56 76 66 36 76 16 36 26 16 87 26 97 87 55 97 44 55 27 44 95 27 58 95 79 58 50 79 100 50 89 100 3 89 101 3
result:
ok both subtasks are correct!
Test #4:
score: 5
Accepted
time: 1ms
memory: 4100kb
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:
19 453 1001 184 453 734 184 713 734 819 713 359 819 775 359 175 775 210 175 830 210 670 830 850 670 814 850 949 814 109 949 1001 109 747 1001 707 747 1001 707
result:
ok both subtasks are correct!
Test #5:
score: 5
Accepted
time: 0ms
memory: 5516kb
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:
195 13073 20001 12213 13073 10354 12213 8254 10354 16367 8254 13167 16367 6867 13167 5967 6867 7667 5967 2067 7667 16854 2067 7854 16854 4955 7854 3641 4955 3971 3641 3334 3971 5034 3334 17871 5034 459 17871 1541 459 17469 1541 1569 17469 10541 1569 8875 10541 475 8875 12259 475 1488 12259 5159 1488...
result:
ok both subtasks are correct!
Test #6:
score: 5
Accepted
time: 2ms
memory: 5116kb
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 84 4021 53 84 37 53 80 37 93 80 258 93 29 258 4 29 60 4 169 60 211 169 104 211 331 104 107 331 358 107 34 358 18 34 40 18 12 40 140 12 144 140 416 144 98 416 171 98 70 171 187 70 380 187 88 380 78 88 100 78 499 100 55 499 28 55 178 28 155 178 129 155 47 129 313 47 357 313 436 357 130 436 193 13...
result:
ok both subtasks are correct!
Test #7:
score: 5
Accepted
time: 3ms
memory: 9656kb
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:
205 72662 90001 11820 72662 72720 11820 75733 72720 37143 75733 68130 37143 22642 68130 36376 22642 38476 36376 39588 38476 77388 39588 69294 77388 1916 69294 55164 1916 13556 55164 85710 13556 20910 85710 42644 20910 44971 42644 53371 44971 26373 53371 19174 26373 85356 19174 31656 85356 76686 3165...
result:
ok both subtasks are correct!
Test #8:
score: 5
Accepted
time: 0ms
memory: 7196kb
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 322 12041 42 322 362 42 82 362 402 82 122 402 442 122 162 442 482 162 202 482 522 202 242 522 562 242 2 562 642 2 602 642 43 602 643 43 83 643 682 83 123 682 722 123 163 722 762 163 203 762 802 203 243 802 842 243 282 842 683 282 323 683 723 323 363 723 763 363 403 763 803 403 443 803 843 443 ...
result:
ok both subtasks are correct!
Test #9:
score: 5
Accepted
time: 4ms
memory: 9252kb
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 196 40001 242 196 172 242 96 172 489 96 743 489 1181 743 1099 1181 249 1099 1356 249 337 1356 57 337 600 57 480 600 97 480 482 97 1644 482 345 1644 163 345 1571 163 639 1571 1771 639 2166 1771 761 2166 1998 761 571 1998 139 571 2266 139 381 2266 2953 381 2644 2953 783 2644 287 783 158 287 2899...
result:
ok both subtasks are correct!
Test #10:
score: 5
Accepted
time: 2ms
memory: 4308kb
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 338 6401 137 338 2009 137 977 2009 806 977 182 806 40 182 353 40 234 353 839 234 1034 839 510 1034 750 510 1119 750 1428 1119 2105 1428 17 2105 757 17 276 757 396 276 1025 396 938 1025 281 938 73 281 192 73 2805 192 1640 2805 765 1640 2337 765 1581 2337 1804 1581 1560 1804 534 1560 3288 534 241...
result:
ok both subtasks are correct!
Test #11:
score: 5
Accepted
time: 9ms
memory: 9360kb
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 495 40001 794 495 170 794 397 170 159 397 982 159 253 982 186 253 1183 186 550 1183 483 550 1362 483 558 1362 1097 558 577 1097 353 577 293 353 1825 293 866 1825 1618 866 892 1618 374 892 592 374 298 592 1860 298 1970 1860 1265 1970 393 1265 300 393 2159 300 2041 2159 90 2041 311 90 195 311 32...
result:
ok both subtasks are correct!
Test #12:
score: 5
Accepted
time: 0ms
memory: 5740kb
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 322 6021 23 322 343 23 42 343 362 42 63 362 383 63 82 383 402 82 123 402 423 123 143 423 445 143 162 445 482 162 203 482 502 203 242 502 524 242 262 524 544 262 283 544 602 283 3 602 622 3 25 622 642 25 44 642 665 44 64 665 723 64 84 723 742 84 102 742 763 102 124 763 784 124 144 784 802 144 16...
result:
ok both subtasks are correct!
Test #13:
score: 5
Accepted
time: 10ms
memory: 13680kb
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 1710 90001 597 1710 1962 597 712 1962 2525 712 861 2525 212 861 1590 212 3254 1590 231 3254 1896 231 3211 1896 974 3211 5432 974 1014 5432 2491 1014 6099 2491 1458 6099 53 1458 1243 53 487 1243 660 487 1651 660 100 1651 7588 100 3504 7588 218 3504 667 218 567 667 1094 567 1244 1094 1673 1244 1...
result:
ok both subtasks are correct!
Test #14:
score: 5
Accepted
time: 13ms
memory: 17004kb
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 404 80401 2 404 802 2 3 802 1602 3 1203 1602 4 1203 2002 4 1204 2002 803 1204 405 803 1603 405 804 1603 1604 804 5 1604 2402 5 1205 2402 406 1205 2003 406 1197 2003 2004 1197 7 2004 3202 7 1206 3202 2005 1206 1605 2005 408 1605 2404 408 8 2404 809 8 2405 809 2006 2405 409 2006 810 409 2802 810...
result:
ok both subtasks are correct!
Test #15:
score: 5
Accepted
time: 15ms
memory: 13100kb
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:
217 118784 160001 784 118784 160001 784 11722 160001 2922 11722 147572 2922 133420 147572 87336 133420 132109 87336 90155 132109 48288 90155 62732 48288 19769 62732 71849 19769 132724 71849 49916 132724 119484 49916 6527 119484 129727 6527 84927 129727 119327 84927 49884 119327 45116 49884 36387 451...
result:
ok both subtasks are correct!
Test #16:
score: 5
Accepted
time: 6ms
memory: 11284kb
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 2980 60201 220 2980 621 220 232 621 1234 232 563 1234 1253 563 419 1253 1659 419 1934 1659 1307 1934 2334 1307 3392 2334 13 3392 1827 13 633 1827 4989 633 2164 4989 5357 2164 16 5357 2600 16 458 2600 6254 458 2798 6254 467 2798 3027 467 507 3027 2914 507 637 2914 3041 637 6412 3041 246 6412 69...
result:
ok both subtasks are correct!
Test #17:
score: 5
Accepted
time: 19ms
memory: 18684kb
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 802 80401 2 802 1202 2 803 1202 402 803 1203 402 3 1203 1604 3 804 1604 404 804 1605 404 4 1605 2002 4 915 2002 1606 915 1204 1606 405 1204 2003 405 5 2003 2402 5 6 2402 2802 6 7 2802 3202 7 8 3202 3602 8 9 3602 4002 9 10 4002 4402 10 11 4402 4802 11 12 4802 5202 12 13 5202 806 13 2004 806 120...
result:
ok both subtasks are correct!
Test #18:
score: 5
Accepted
time: 11ms
memory: 17308kb
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 392 120001 1692 392 427 1692 690 427 421 690 3291 421 1496 3291 124 1496 775 124 4136 775 745 4136 4124 745 1404 4124 600 1404 4679 600 806 4679 1656 806 1216 1656 253 1216 2642 253 1436 2642 372 1436 2215 372 5160 2215 3713 5160 5553 3713 4322 5553 5682 4322 4607 5682 243 4607 2370 243 8290 2...
result:
ok both subtasks are correct!
Test #19:
score: 5
Accepted
time: 23ms
memory: 27176kb
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 1199 132868 800 1199 401 800 1200 401 404 1200 2 404 1598 2 405 1598 1599 405 801 1599 1600 801 1201 1600 3 1201 1997 3 406 1997 1998 406 802 1998 2386 802 1601 2386 4 1601 2000 4 5 2000 2397 5 407 2397 2001 407 1202 2001 3046 1202 408 3046 2398 408 803 2398 2399 803 1203 2399 2400 1203 6 240...
result:
ok both subtasks are correct!
Test #20:
score: 5
Accepted
time: 26ms
memory: 20500kb
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 2388 160001 523 2388 1228 523 569 1228 147 569 546 147 1984 546 4380 1984 1074 4380 1540 1074 1901 1540 2332 1901 5423 2332 2632 5423 11280 2632 2953 11280 1162 2953 690 1162 920 690 11751 920 3820 11751 13326 3820 4724 13326 391 4724 2968 391 2064 2968 1914 2064 14091 1914 2676 14091 15984 26...
result:
ok both subtasks are correct!