Submission #1060929

# Submission time Handle Problem Language Result Execution time Memory
1060929 2024-08-16T04:44:45 Z thinknoexit Copy and Paste 3 (JOI22_copypaste3) C++17
25 / 100
11 ms 31656 KB
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
char s[202];
int qs[202][202], cnt[202][202][202];
ll dp[202][202];
ll A, B, C;
int main() {
    cin.tie(nullptr)->sync_with_stdio(false);
    int n;
    cin >> n;
    bool ch = 1;
    for (int i = 1;i <= n;i++) {
        cin >> s[i];
        ch &= s[i] == 'a';
    }
    if (ch) {
        vector<ll> dp(n + 2, 0);
        ll A, B, C;
        cin >> A >> B >> C;
        for (int i = 1;i <= n;i++) {
            dp[i] = dp[i - 1] + A;
            for (int j = 1;j < i;j++) {
                dp[i] = min(dp[i], (dp[j] + B) + A * (i % j) + C * (i / j));
            }
        }
        cout << dp[n] << '\n';
        return 0;
    }
    for (int i = 1;i <= n;i++) {
        for (int j = 1;i + j <= n;j++) {
            qs[i][j] = s[i] == s[i + j];
        }
        for (int j = 1;j <= n;j++) {
            qs[i][j] += qs[i - 1][j];
        }
    }
    for (int i = 1;i <= n;i++) {
        for (int j = i;j <= n;j++) {
            int r = j - i + 1;
            cnt[i][j][j] = 1;
            for (int k = j + 1;k <= n;k++) {
                cnt[i][j][k] = cnt[i][j][k - 1];
                // x = k - j
                int x = k - j;
                if (qs[j][x] - qs[i - 1][x] == r)
                    cnt[i][j][k] = max(cnt[i][j][k], cnt[i][j][k - r] + 1);
            }
        }
    }
    cin >> A >> B >> C;
    for (int i = 1;i <= n;i++) dp[i][i] = A;
    for (int k = 1;k < n;k++) {
        for (int i = 1;i <= n - k;i++) {
            int j = i + k;
            dp[i][j] = (k + 1) * A;
            dp[i][j] = min(dp[i][j], A + dp[i + 1][j]);
            dp[i][j] = min(dp[i][j], dp[i][j - 1] + A);
            for (int l = 0;l < k;l++) {
                int c = cnt[i][i + l][j];
                ll val = A * (k + 1 - c * (l + 1));
                val += dp[i][i + l] + B;
                val += C * c;
                dp[i][j] = min(dp[i][j], val);
            }
        }
    }
    // calculate cost to make X = s[l...r]
    cout << dp[1][n] << '\n';
    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2396 KB Output is correct
2 Correct 0 ms 2396 KB Output is correct
3 Correct 0 ms 2396 KB Output is correct
4 Correct 1 ms 2396 KB Output is correct
5 Correct 0 ms 2396 KB Output is correct
6 Correct 0 ms 2396 KB Output is correct
7 Correct 0 ms 2396 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 1 ms 504 KB Output is correct
10 Correct 0 ms 344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Runtime error 1 ms 604 KB Execution killed with signal 11
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2396 KB Output is correct
2 Correct 0 ms 2396 KB Output is correct
3 Correct 0 ms 2396 KB Output is correct
4 Correct 1 ms 2396 KB Output is correct
5 Correct 0 ms 2396 KB Output is correct
6 Correct 0 ms 2396 KB Output is correct
7 Correct 0 ms 2396 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 1 ms 504 KB Output is correct
10 Correct 0 ms 344 KB Output is correct
11 Correct 0 ms 2396 KB Output is correct
12 Correct 1 ms 348 KB Output is correct
13 Correct 1 ms 4444 KB Output is correct
14 Correct 1 ms 2396 KB Output is correct
15 Correct 1 ms 4444 KB Output is correct
16 Correct 1 ms 4444 KB Output is correct
17 Correct 0 ms 2392 KB Output is correct
18 Correct 1 ms 2396 KB Output is correct
19 Correct 0 ms 4444 KB Output is correct
20 Correct 0 ms 2396 KB Output is correct
21 Correct 1 ms 6492 KB Output is correct
22 Correct 1 ms 6492 KB Output is correct
23 Correct 1 ms 6492 KB Output is correct
24 Correct 1 ms 6488 KB Output is correct
25 Correct 1 ms 6492 KB Output is correct
26 Correct 1 ms 6492 KB Output is correct
27 Correct 1 ms 6492 KB Output is correct
28 Correct 1 ms 6492 KB Output is correct
29 Correct 1 ms 6492 KB Output is correct
30 Correct 1 ms 6492 KB Output is correct
31 Correct 1 ms 6492 KB Output is correct
32 Correct 1 ms 6636 KB Output is correct
33 Correct 1 ms 6488 KB Output is correct
34 Correct 0 ms 348 KB Output is correct
35 Correct 0 ms 348 KB Output is correct
36 Correct 0 ms 348 KB Output is correct
37 Correct 0 ms 348 KB Output is correct
38 Correct 0 ms 348 KB Output is correct
39 Correct 0 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2396 KB Output is correct
2 Correct 0 ms 2396 KB Output is correct
3 Correct 0 ms 2396 KB Output is correct
4 Correct 1 ms 2396 KB Output is correct
5 Correct 0 ms 2396 KB Output is correct
6 Correct 0 ms 2396 KB Output is correct
7 Correct 0 ms 2396 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 1 ms 504 KB Output is correct
10 Correct 0 ms 344 KB Output is correct
11 Correct 0 ms 2396 KB Output is correct
12 Correct 1 ms 348 KB Output is correct
13 Correct 1 ms 4444 KB Output is correct
14 Correct 1 ms 2396 KB Output is correct
15 Correct 1 ms 4444 KB Output is correct
16 Correct 1 ms 4444 KB Output is correct
17 Correct 0 ms 2392 KB Output is correct
18 Correct 1 ms 2396 KB Output is correct
19 Correct 0 ms 4444 KB Output is correct
20 Correct 0 ms 2396 KB Output is correct
21 Correct 1 ms 6492 KB Output is correct
22 Correct 1 ms 6492 KB Output is correct
23 Correct 1 ms 6492 KB Output is correct
24 Correct 1 ms 6488 KB Output is correct
25 Correct 1 ms 6492 KB Output is correct
26 Correct 1 ms 6492 KB Output is correct
27 Correct 1 ms 6492 KB Output is correct
28 Correct 1 ms 6492 KB Output is correct
29 Correct 1 ms 6492 KB Output is correct
30 Correct 1 ms 6492 KB Output is correct
31 Correct 1 ms 6492 KB Output is correct
32 Correct 1 ms 6636 KB Output is correct
33 Correct 1 ms 6488 KB Output is correct
34 Correct 0 ms 348 KB Output is correct
35 Correct 0 ms 348 KB Output is correct
36 Correct 0 ms 348 KB Output is correct
37 Correct 0 ms 348 KB Output is correct
38 Correct 0 ms 348 KB Output is correct
39 Correct 0 ms 348 KB Output is correct
40 Correct 2 ms 14940 KB Output is correct
41 Correct 8 ms 31580 KB Output is correct
42 Correct 8 ms 31608 KB Output is correct
43 Correct 8 ms 31580 KB Output is correct
44 Correct 7 ms 31580 KB Output is correct
45 Correct 8 ms 31580 KB Output is correct
46 Correct 8 ms 31616 KB Output is correct
47 Correct 11 ms 31580 KB Output is correct
48 Correct 9 ms 31580 KB Output is correct
49 Correct 9 ms 31656 KB Output is correct
50 Correct 10 ms 31652 KB Output is correct
51 Correct 8 ms 31580 KB Output is correct
52 Correct 11 ms 31580 KB Output is correct
53 Correct 8 ms 31576 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2396 KB Output is correct
2 Correct 0 ms 2396 KB Output is correct
3 Correct 0 ms 2396 KB Output is correct
4 Correct 1 ms 2396 KB Output is correct
5 Correct 0 ms 2396 KB Output is correct
6 Correct 0 ms 2396 KB Output is correct
7 Correct 0 ms 2396 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 1 ms 504 KB Output is correct
10 Correct 0 ms 344 KB Output is correct
11 Correct 0 ms 2396 KB Output is correct
12 Correct 1 ms 348 KB Output is correct
13 Correct 1 ms 4444 KB Output is correct
14 Correct 1 ms 2396 KB Output is correct
15 Correct 1 ms 4444 KB Output is correct
16 Correct 1 ms 4444 KB Output is correct
17 Correct 0 ms 2392 KB Output is correct
18 Correct 1 ms 2396 KB Output is correct
19 Correct 0 ms 4444 KB Output is correct
20 Correct 0 ms 2396 KB Output is correct
21 Correct 1 ms 6492 KB Output is correct
22 Correct 1 ms 6492 KB Output is correct
23 Correct 1 ms 6492 KB Output is correct
24 Correct 1 ms 6488 KB Output is correct
25 Correct 1 ms 6492 KB Output is correct
26 Correct 1 ms 6492 KB Output is correct
27 Correct 1 ms 6492 KB Output is correct
28 Correct 1 ms 6492 KB Output is correct
29 Correct 1 ms 6492 KB Output is correct
30 Correct 1 ms 6492 KB Output is correct
31 Correct 1 ms 6492 KB Output is correct
32 Correct 1 ms 6636 KB Output is correct
33 Correct 1 ms 6488 KB Output is correct
34 Correct 0 ms 348 KB Output is correct
35 Correct 0 ms 348 KB Output is correct
36 Correct 0 ms 348 KB Output is correct
37 Correct 0 ms 348 KB Output is correct
38 Correct 0 ms 348 KB Output is correct
39 Correct 0 ms 348 KB Output is correct
40 Correct 2 ms 14940 KB Output is correct
41 Correct 8 ms 31580 KB Output is correct
42 Correct 8 ms 31608 KB Output is correct
43 Correct 8 ms 31580 KB Output is correct
44 Correct 7 ms 31580 KB Output is correct
45 Correct 8 ms 31580 KB Output is correct
46 Correct 8 ms 31616 KB Output is correct
47 Correct 11 ms 31580 KB Output is correct
48 Correct 9 ms 31580 KB Output is correct
49 Correct 9 ms 31656 KB Output is correct
50 Correct 10 ms 31652 KB Output is correct
51 Correct 8 ms 31580 KB Output is correct
52 Correct 11 ms 31580 KB Output is correct
53 Correct 8 ms 31576 KB Output is correct
54 Runtime error 1 ms 856 KB Execution killed with signal 11
55 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2396 KB Output is correct
2 Correct 0 ms 2396 KB Output is correct
3 Correct 0 ms 2396 KB Output is correct
4 Correct 1 ms 2396 KB Output is correct
5 Correct 0 ms 2396 KB Output is correct
6 Correct 0 ms 2396 KB Output is correct
7 Correct 0 ms 2396 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 1 ms 504 KB Output is correct
10 Correct 0 ms 344 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Runtime error 1 ms 604 KB Execution killed with signal 11
14 Halted 0 ms 0 KB -