Submission #68602708
Source Code Expand
#include<bits/stdc++.h>
using namespace std;
#define rep(i, s, t) for(int i = (s); i <= (t); i ++)
#define per(i, s, t) for(int i = (s); i >= (t); i --)
template<typename T, typename T2>
inline void chmin(T &x, T2 &&y) { x = min(x, y); }
template<typename T, typename T2>
inline void chmax(T &x, T2 &&y) { x = max(x, y); }
typedef long long ll;
const int N = 1e4 + 5;
int f[N][N], ok[N][N], n, k;
inline bool chk(int x, int y) { return (x - y) % n == 0; }
int sol(vector<int> v)
{
if(v.size() == 1) return 0;
// for(int i : v) cerr << i << " "; cerr << endl;
int n = v.size();
int ans = 0;
rep(i, 0, n - 1) v.push_back(v[i]);
rep(i, 0, n * 2) rep(j, 0, n * 2) f[i][j] = -1e9, ok[i][j] = 0;
rep(i, 0, n * 2 - 2) f[i][i + 1] = chk(v[i], v[i + 1]), ok[i][i + n - 1] = 1;
per(i, n - 1, 0)
{
vector<int> pos;
rep(j, i + 1, n * 2 - 2)
{
for(int k : pos)
chmax(f[i][j], f[i][k] + f[k][j]);
ok[i][j] |= pos.size();
chmax(f[i][j], f[i][j - 1] + chk(v[i], v[j]));
chmax(f[i][j], f[i + 1][j] + chk(v[i], v[j]));
// if(!ok[i][j])
// rep(k, i + 1, j - 1)
// chmax(f[i][j], f[i][k] + f[k][j]);
if(chk(v[j], v[i])) pos.push_back(j);
}
pos = {};
per(j, i - 1, 1)
{
for(int k : pos)
chmax(f[j][i], f[j][k] + f[k][i]);
ok[j][i] |= pos.size();
if(chk(v[j], v[i])) pos.push_back(j);
}
}
rep(i, 0, n - 1) chmax(ans, f[i][i + n - 1]);
// cerr << ans << endl;
return ans;
}
int a[N];
bool vis[N];
signed main()
{
ios::sync_with_stdio(0);cin.tie(0);
cin >> n >> k; rep(i, 1, n * k) cin >> a[i];
int ans = 0;
rep(i, 1, n * k) if(!vis[i])
{
vector<int> v;
for(int j = i; !vis[j]; j = a[j]) v.push_back(j), vis[j] = 1;
ans += sol(v);
}
cout << ans;
return 0;
}
Submission Info
Submission Time |
|
Task |
B - Sort Permutation |
User |
adam01 |
Language |
C++ 20 (gcc 12.2) |
Score |
800 |
Code Size |
2057 Byte |
Status |
AC |
Exec Time |
1179 ms |
Memory |
785424 KiB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
800 / 800 |
Status |
|
|
Set Name |
Test Cases |
Sample |
01-sample-01.txt, 01-sample-02.txt, 01-sample-03.txt |
All |
01-sample-01.txt, 01-sample-02.txt, 01-sample-03.txt, 02-small-01.txt, 02-small-02.txt, 02-small-03.txt, 02-small-04.txt, 02-small-05.txt, 02-small-06.txt, 02-small-07.txt, 02-small-08.txt, 02-small-09.txt, 02-small-10.txt, 02-small-11.txt, 02-small-12.txt, 02-small-13.txt, 02-small-14.txt, 02-small-15.txt, 02-small-16.txt, 03-random-01.txt, 03-random-02.txt, 03-random-03.txt, 03-random-04.txt, 03-random-05.txt, 04-large-01.txt, 04-large-02.txt, 04-large-03.txt, 04-large-04.txt, 04-large-05.txt, 05-id-01.txt, 05-id-02.txt, 05-id-03.txt, 05-id-04.txt, 06-large-cycle-01.txt, 06-large-cycle-02.txt, 06-large-cycle-03.txt, 06-large-cycle-04.txt, 06-large-cycle-05.txt, 07-large-cycle-2-01.txt, 07-large-cycle-2-02.txt, 07-large-cycle-2-03.txt, 07-large-cycle-2-04.txt, 07-large-cycle-2-05.txt, 08-divide-01.txt, 08-divide-02.txt, 08-divide-03.txt, 08-divide-04.txt, 08-divide-05.txt, 09-large-ans-01.txt, 09-large-ans-02.txt, 09-large-ans-03.txt, 09-large-ans-04.txt, 09-large-ans-05.txt |
Case Name |
Status |
Exec Time |
Memory |
01-sample-01.txt |
AC |
1 ms |
3460 KiB |
01-sample-02.txt |
AC |
1 ms |
3404 KiB |
01-sample-03.txt |
AC |
1 ms |
3680 KiB |
02-small-01.txt |
AC |
1 ms |
3432 KiB |
02-small-02.txt |
AC |
1 ms |
3428 KiB |
02-small-03.txt |
AC |
1 ms |
3484 KiB |
02-small-04.txt |
AC |
1 ms |
3568 KiB |
02-small-05.txt |
AC |
1 ms |
3548 KiB |
02-small-06.txt |
AC |
1 ms |
3560 KiB |
02-small-07.txt |
AC |
1 ms |
3596 KiB |
02-small-08.txt |
AC |
1 ms |
3472 KiB |
02-small-09.txt |
AC |
1 ms |
3452 KiB |
02-small-10.txt |
AC |
1 ms |
3536 KiB |
02-small-11.txt |
AC |
1 ms |
3648 KiB |
02-small-12.txt |
AC |
1 ms |
3576 KiB |
02-small-13.txt |
AC |
1 ms |
3536 KiB |
02-small-14.txt |
AC |
1 ms |
3608 KiB |
02-small-15.txt |
AC |
1 ms |
3588 KiB |
02-small-16.txt |
AC |
1 ms |
3732 KiB |
03-random-01.txt |
AC |
116 ms |
138252 KiB |
03-random-02.txt |
AC |
187 ms |
188552 KiB |
03-random-03.txt |
AC |
2 ms |
5224 KiB |
03-random-04.txt |
AC |
9 ms |
17172 KiB |
03-random-05.txt |
AC |
63 ms |
64292 KiB |
04-large-01.txt |
AC |
378 ms |
304128 KiB |
04-large-02.txt |
AC |
131 ms |
123448 KiB |
04-large-03.txt |
AC |
229 ms |
185952 KiB |
04-large-04.txt |
AC |
333 ms |
325192 KiB |
04-large-05.txt |
AC |
235 ms |
182620 KiB |
05-id-01.txt |
AC |
1 ms |
3536 KiB |
05-id-02.txt |
AC |
1 ms |
3456 KiB |
05-id-03.txt |
AC |
1 ms |
3604 KiB |
05-id-04.txt |
AC |
1 ms |
3456 KiB |
06-large-cycle-01.txt |
AC |
1179 ms |
785424 KiB |
06-large-cycle-02.txt |
AC |
926 ms |
707296 KiB |
06-large-cycle-03.txt |
AC |
1099 ms |
755504 KiB |
06-large-cycle-04.txt |
AC |
505 ms |
445520 KiB |
06-large-cycle-05.txt |
AC |
1158 ms |
774536 KiB |
07-large-cycle-2-01.txt |
AC |
227 ms |
186876 KiB |
07-large-cycle-2-02.txt |
AC |
729 ms |
590076 KiB |
07-large-cycle-2-03.txt |
AC |
985 ms |
722668 KiB |
07-large-cycle-2-04.txt |
AC |
132 ms |
129284 KiB |
07-large-cycle-2-05.txt |
AC |
789 ms |
621956 KiB |
08-divide-01.txt |
AC |
3 ms |
4820 KiB |
08-divide-02.txt |
AC |
15 ms |
14144 KiB |
08-divide-03.txt |
AC |
3 ms |
5172 KiB |
08-divide-04.txt |
AC |
4 ms |
5644 KiB |
08-divide-05.txt |
AC |
3 ms |
4904 KiB |
09-large-ans-01.txt |
AC |
439 ms |
378208 KiB |
09-large-ans-02.txt |
AC |
147 ms |
91924 KiB |
09-large-ans-03.txt |
AC |
576 ms |
502636 KiB |
09-large-ans-04.txt |
AC |
251 ms |
228804 KiB |
09-large-ans-05.txt |
AC |
147 ms |
124436 KiB |