Submission #3889542
Source Code Expand
#include <bits/stdc++.h> using namespace std; typedef long long int ll; typedef pair<ll, ll> pll; #define FOR(i, n, m) for (ll(i) = (m); (i) < (n); ++(i)) #define REP(i, n) FOR(i, n, 0) #define OF64 std::setprecision(10) const ll MOD = 1000000007; const ll INF = (ll)1e15; ll C[5005]; //! i-jで構成されるsubstructが回文か bool L[5005][5005]; bool U[5005][5005]; //! [i番目までの文字を使った時の]=costの最小値 ll dp[5005]; int N; string S; //! i-jで構成されるsubstructが回文か bool check(int i, int j) { if (U[i][j]) return L[i][j]; U[i][j] = true; if (i > j) return L[i][j] = true; if (i == j) return L[i][j] = true; if (S[i] != S[j]) return L[i][j] = false; return L[i][j] = check(i + 1, j - 1); } int main() { cin >> N >> S; REP(i, N) { cin >> C[i]; } REP(i, N) { FOR(j, N, i) { check(i, j); } } dp[0] = 0; FOR(i, N + 1, 1) { dp[i] = dp[i - 1] + C[0]; for (int j = i - 1; j >= 1; --j) { if (L[j - 1][i - 1]) dp[i] = std::min(dp[i], dp[j - 1] + C[i - j]); } } cout << dp[N] << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | C - Palindrome Concatenation |
User | coco18000 |
Language | C++14 (GCC 5.4.1) |
Score | 100 |
Code Size | 1315 Byte |
Status | AC |
Exec Time | 268 ms |
Memory | 49024 KB |
Judge Result
Set Name | Sample | Dataset1 | Dataset2 | ||||||
---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 40 / 40 | 60 / 60 | ||||||
Status |
|
|
|
Set Name | Test Cases |
---|---|
Sample | sample-01.txt, sample-02.txt, sample-03.txt |
Dataset1 | sample-01.txt, sample-02.txt, sample-03.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt |
Dataset2 | 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 02-09.txt, 02-10.txt, 02-11.txt, 02-12.txt, 02-13.txt, 02-14.txt, 02-15.txt, 02-16.txt, 02-17.txt, 02-18.txt, 02-19.txt, 02-20.txt, 02-21.txt, 02-22.txt, 02-23.txt, 02-24.txt, sample-01.txt, sample-02.txt, sample-03.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
01-01.txt | AC | 2 ms | 2304 KB |
01-02.txt | AC | 2 ms | 2304 KB |
01-03.txt | AC | 3 ms | 4736 KB |
01-04.txt | AC | 3 ms | 5248 KB |
01-05.txt | AC | 3 ms | 5248 KB |
01-06.txt | AC | 3 ms | 5248 KB |
01-07.txt | AC | 3 ms | 5248 KB |
01-08.txt | AC | 3 ms | 5248 KB |
01-09.txt | AC | 3 ms | 5248 KB |
01-10.txt | AC | 3 ms | 5248 KB |
01-11.txt | AC | 3 ms | 5248 KB |
01-12.txt | AC | 3 ms | 5248 KB |
01-13.txt | AC | 3 ms | 5248 KB |
01-14.txt | AC | 3 ms | 5248 KB |
01-15.txt | AC | 3 ms | 5248 KB |
01-16.txt | AC | 3 ms | 5248 KB |
01-17.txt | AC | 3 ms | 5248 KB |
01-18.txt | AC | 3 ms | 5248 KB |
01-19.txt | AC | 3 ms | 5248 KB |
01-20.txt | AC | 3 ms | 5248 KB |
01-21.txt | AC | 3 ms | 5248 KB |
02-01.txt | AC | 9 ms | 14592 KB |
02-02.txt | AC | 22 ms | 22784 KB |
02-03.txt | AC | 41 ms | 30976 KB |
02-04.txt | AC | 114 ms | 48896 KB |
02-05.txt | AC | 268 ms | 49024 KB |
02-06.txt | AC | 155 ms | 48896 KB |
02-07.txt | AC | 133 ms | 48896 KB |
02-08.txt | AC | 260 ms | 49024 KB |
02-09.txt | AC | 116 ms | 49024 KB |
02-10.txt | AC | 116 ms | 49024 KB |
02-11.txt | AC | 114 ms | 48896 KB |
02-12.txt | AC | 124 ms | 48896 KB |
02-13.txt | AC | 112 ms | 48896 KB |
02-14.txt | AC | 114 ms | 48896 KB |
02-15.txt | AC | 115 ms | 48896 KB |
02-16.txt | AC | 162 ms | 48896 KB |
02-17.txt | AC | 163 ms | 48896 KB |
02-18.txt | AC | 167 ms | 48896 KB |
02-19.txt | AC | 163 ms | 48896 KB |
02-20.txt | AC | 163 ms | 48896 KB |
02-21.txt | AC | 113 ms | 48896 KB |
02-22.txt | AC | 121 ms | 48896 KB |
02-23.txt | AC | 199 ms | 49024 KB |
02-24.txt | AC | 193 ms | 49024 KB |
sample-01.txt | AC | 2 ms | 2304 KB |
sample-02.txt | AC | 2 ms | 2304 KB |
sample-03.txt | AC | 2 ms | 2304 KB |