Submission #489902


Source Code Expand

using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
using System.Text;
using System.Numerics;

namespace Solver
{
    class Program
    {
        const int M = 1000000007;
        const double eps = 1e-9;
        static string s;
        static void Main()
        {
            var sw = new System.IO.StreamWriter(Console.OpenStandardOutput()) { AutoFlush = false };
            var sc = new Scan();
            int n = sc.Int;
            s = sc.Str;
            var c = sc.IntArr;
            var dp = new int[n + 1];
            for (int i = 0; i < n; i++)
            {
                dp[i + 1] = dp[i] + c[0];
                for (int j = 0; j < i; j++)
                    if (kaibun(j, i))
                        dp[i + 1] = Math.Min(dp[i + 1], dp[j] + c[i - j]);
            }
            sw.WriteLine(dp[n]);
            sw.Flush();
        }
        static bool kaibun(int l, int r)
        {
            for (int i = 0; i < r - l; i++)
                if (s[l + i] != s[r - i])
                    return false;

            return true;
        }
    }
    class Scan
    {
        public int Int { get { return int.Parse(Console.ReadLine().Trim()); } }
        public long Long { get { return long.Parse(Console.ReadLine().Trim()); } }
        public string Str { get { return Console.ReadLine().Trim(); } }
        public int[] IntArr { get { return Console.ReadLine().Trim().Split().Select(int.Parse).ToArray(); } }
        public int[] IntArrWithSep(char sep) { return Console.ReadLine().Trim().Split(sep).Select(int.Parse).ToArray(); }
        public long[] LongArr { get { return Console.ReadLine().Trim().Split().Select(long.Parse).ToArray(); } }
        public double[] DoubleArr { get { return Console.ReadLine().Split().Select(double.Parse).ToArray(); } }
        public string[] StrArr { get { return Console.ReadLine().Trim().Split(); } }
        public List<int> IntList { get { return Console.ReadLine().Trim().Split().Select(int.Parse).ToList(); } }
        public List<long> LongList { get { return Console.ReadLine().Trim().Split().Select(long.Parse).ToList(); } }
        public void Multi(out int a, out int b) { var arr = IntArr; a = arr[0]; b = arr[1]; }
        public void Multi(out int a, out int b, out int c) { var arr = IntArr; a = arr[0]; b = arr[1]; c = arr[2]; }
        public void Multi(out int a, out int b, out int c, out int d) { var arr = IntArr; a = arr[0]; b = arr[1]; c = arr[2]; d = arr[3]; }
        public void Multi(out int a, out string b) { var arr = StrArr; a = int.Parse(arr[0]); b = arr[1]; }
        public void Multi(out int a, out int b, out string c) { var arr = StrArr; a = int.Parse(arr[0]); b = int.Parse(arr[1]); c = arr[2]; }
        public void Multi(out int a, out char b) { var arr = StrArr; a = int.Parse(arr[0]); b = arr[1][0]; }
        public void Multi(out long a, out long b) { var arr = LongArr; a = arr[0]; b = arr[1]; }
        public void Multi(out long a, out int b) { var arr = LongArr; a = arr[0]; b = (int)arr[1]; }
        public void Multi(out string a, out string b) { var arr = StrArr; a = arr[0]; b = arr[1]; }
    }
}

Submission Info

Submission Time
Task C - Palindrome Concatenation
User riantkb
Language C# (Mono 3.2.1.0)
Score 40
Code Size 3207 Byte
Status TLE
Exec Time 2041 ms
Memory 10136 KB

Judge Result

Set Name Sample Dataset1 Dataset2
Score / Max Score 0 / 0 40 / 40 0 / 60
Status
AC × 3
AC × 24
AC × 41
TLE × 4
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
Case Name Status Exec Time Memory
01-01.txt AC 198 ms 9500 KB
01-02.txt AC 136 ms 9376 KB
01-03.txt AC 137 ms 9420 KB
01-04.txt AC 139 ms 9504 KB
01-05.txt AC 148 ms 9484 KB
01-06.txt AC 138 ms 9500 KB
01-07.txt AC 138 ms 9504 KB
01-08.txt AC 145 ms 9484 KB
01-09.txt AC 143 ms 9496 KB
01-10.txt AC 142 ms 9488 KB
01-11.txt AC 136 ms 9504 KB
01-12.txt AC 134 ms 9500 KB
01-13.txt AC 138 ms 9504 KB
01-14.txt AC 138 ms 9484 KB
01-15.txt AC 135 ms 9480 KB
01-16.txt AC 135 ms 9464 KB
01-17.txt AC 135 ms 9496 KB
01-18.txt AC 133 ms 9492 KB
01-19.txt AC 135 ms 9504 KB
01-20.txt AC 137 ms 9484 KB
01-21.txt AC 136 ms 9480 KB
02-01.txt AC 141 ms 9572 KB
02-02.txt AC 158 ms 9624 KB
02-03.txt AC 181 ms 9872 KB
02-04.txt AC 278 ms 10116 KB
02-05.txt TLE 2041 ms 9656 KB
02-06.txt AC 341 ms 10008 KB
02-07.txt AC 306 ms 10068 KB
02-08.txt TLE 2034 ms 9764 KB
02-09.txt AC 315 ms 10020 KB
02-10.txt AC 307 ms 10020 KB
02-11.txt AC 284 ms 10096 KB
02-12.txt AC 284 ms 10132 KB
02-13.txt AC 285 ms 10024 KB
02-14.txt AC 287 ms 10008 KB
02-15.txt AC 286 ms 10024 KB
02-16.txt AC 544 ms 10128 KB
02-17.txt AC 533 ms 10136 KB
02-18.txt AC 512 ms 10120 KB
02-19.txt AC 529 ms 10020 KB
02-20.txt AC 524 ms 10016 KB
02-21.txt AC 286 ms 9996 KB
02-22.txt AC 295 ms 10132 KB
02-23.txt TLE 2035 ms 9656 KB
02-24.txt TLE 2036 ms 9676 KB
sample-01.txt AC 144 ms 9404 KB
sample-02.txt AC 143 ms 9484 KB
sample-03.txt AC 137 ms 9420 KB