Submission #72755278
Source Code Expand
#include<cstdio>
int n, m;
int c[30100];
int p[30100][10];
long long int dp[30100];
long long int maxdp[30100];
int invarr[20];
int dist(int x, int y) {
for (int i = 0; i < m; i++) {
invarr[p[x][i]] = i;
}
int res = 0;
for (int i = 0; i < m; i++) {
for (int j = i + 1; j < m; j++) {
if (invarr[p[y][i]] > invarr[p[y][j]]) {
res++;
}
}
}
return res;
}
int main() {
scanf("%d%d", &n, &m);
for (int i = 1; i <= n; i++) {
scanf("%d", &c[i]);
for (int j = 0; j < m; j++) {
scanf("%d", &p[i][j]);
}
}
for (int j = 0; j < m; j++) {
p[0][j] = j + 1;
}
dp[0] = 0;
long long int ans = 0;
int maxswap = m * (m - 1) / 2;
for (int i = 1; i <= n; i++) {
dp[i] = -1e18;
for (int j = i - 1; j >= 0 && j >= i - maxswap; j--) {
if (dist(i, j) <= i - j) {
if (dp[i] < dp[j])dp[i] = dp[j];
}
}
if (i >= maxswap + 1) {
if (dp[i] < maxdp[i - maxswap - 1])dp[i] = maxdp[i - maxswap - 1];
}
dp[i] += c[i];
if (ans < dp[i])ans = dp[i];
maxdp[i] = ans;
}
printf("%lld\n", ans);
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | A - Swapping Game |
| User | gs12117 |
| Language | C++23 (GCC 15.2.0) |
| Score | 600 |
| Code Size | 1090 Byte |
| Status | AC |
| Exec Time | 38 ms |
| Memory | 3504 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 600 / 600 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | example0.txt, example1.txt, example2.txt, example3.txt |
| All | 000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, 011.txt, 012.txt, 013.txt, 014.txt, 015.txt, 016.txt, 017.txt, 018.txt, 019.txt, 020.txt, 021.txt, 022.txt, 023.txt, 024.txt, 025.txt, 026.txt, 027.txt, 028.txt, 029.txt, 030.txt, 031.txt, 032.txt, 033.txt, 034.txt, 035.txt, 036.txt, example0.txt, example1.txt, example2.txt, example3.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 000.txt | AC | 1 ms | 1604 KiB |
| 001.txt | AC | 3 ms | 3404 KiB |
| 002.txt | AC | 4 ms | 3332 KiB |
| 003.txt | AC | 6 ms | 3244 KiB |
| 004.txt | AC | 9 ms | 3504 KiB |
| 005.txt | AC | 17 ms | 3344 KiB |
| 006.txt | AC | 29 ms | 3332 KiB |
| 007.txt | AC | 38 ms | 3364 KiB |
| 008.txt | AC | 12 ms | 3404 KiB |
| 009.txt | AC | 23 ms | 3332 KiB |
| 010.txt | AC | 38 ms | 3332 KiB |
| 011.txt | AC | 38 ms | 3392 KiB |
| 012.txt | AC | 28 ms | 3448 KiB |
| 013.txt | AC | 38 ms | 3480 KiB |
| 014.txt | AC | 37 ms | 3372 KiB |
| 015.txt | AC | 36 ms | 3404 KiB |
| 016.txt | AC | 36 ms | 3404 KiB |
| 017.txt | AC | 36 ms | 3244 KiB |
| 018.txt | AC | 38 ms | 3420 KiB |
| 019.txt | AC | 38 ms | 3396 KiB |
| 020.txt | AC | 37 ms | 3396 KiB |
| 021.txt | AC | 36 ms | 3396 KiB |
| 022.txt | AC | 37 ms | 3404 KiB |
| 023.txt | AC | 38 ms | 3392 KiB |
| 024.txt | AC | 38 ms | 3404 KiB |
| 025.txt | AC | 36 ms | 3392 KiB |
| 026.txt | AC | 36 ms | 3396 KiB |
| 027.txt | AC | 36 ms | 3344 KiB |
| 028.txt | AC | 38 ms | 3368 KiB |
| 029.txt | AC | 38 ms | 3420 KiB |
| 030.txt | AC | 38 ms | 3480 KiB |
| 031.txt | AC | 38 ms | 3244 KiB |
| 032.txt | AC | 38 ms | 3236 KiB |
| 033.txt | AC | 38 ms | 3244 KiB |
| 034.txt | AC | 36 ms | 3404 KiB |
| 035.txt | AC | 36 ms | 3420 KiB |
| 036.txt | AC | 36 ms | 3420 KiB |
| example0.txt | AC | 0 ms | 1628 KiB |
| example1.txt | AC | 0 ms | 1452 KiB |
| example2.txt | AC | 0 ms | 1604 KiB |
| example3.txt | AC | 0 ms | 1712 KiB |