提出 #38202828
ソースコード 拡げる
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Numerics;
namespace Tasks
{
public class C
{
public static void Main()
{
using var sw = new StreamWriter(Console.OpenStandardOutput()) { AutoFlush = false };
Console.SetOut(sw);
Solve();
Console.Out.Flush();
}
public static void Solve()
{
var (N, A, B) = Scanner.Scan<int, long, long>();
var S = Scanner.Scan<string>();
const long inf = (long)1e18;
var answer = inf;
for (var i = 0; i < N; i++)
{
if (A * i >= answer) continue;
var sum = A * i;
var T = Shift<char>(S, -i);
for (var j = 0; j * 2 < N; j++)
{
if (T[j] == T[N - 1 - j]) continue;
sum += B;
}
answer = Math.Min(answer, sum);
}
Console.WriteLine(answer);
}
public static T[] Shift<T>(ReadOnlySpan<T> source, int shift)
{
shift = (shift + source.Length) % source.Length;
if (shift == 0) return source.ToArray();
var result = new T[source.Length];
source[^shift..].CopyTo(result.AsSpan(..shift));
source[..^shift].CopyTo(result.AsSpan(shift..));
return result;
}
public static class Scanner
{
public static T Scan<T>() where T : IConvertible => Convert<T>(Scan()[0]);
public static (T1, T2) Scan<T1, T2>() where T1 : IConvertible where T2 : IConvertible
{
var buffer = Scan();
return (Convert<T1>(buffer[0]), Convert<T2>(buffer[1]));
}
public static (T1, T2, T3) Scan<T1, T2, T3>() where T1 : IConvertible where T2 : IConvertible where T3 : IConvertible
{
var buffer = Scan();
return (Convert<T1>(buffer[0]), Convert<T2>(buffer[1]), Convert<T3>(buffer[2]));
}
public static (T1, T2, T3, T4) Scan<T1, T2, T3, T4>() where T1 : IConvertible where T2 : IConvertible where T3 : IConvertible where T4 : IConvertible
{
var buffer = Scan();
return (Convert<T1>(buffer[0]), Convert<T2>(buffer[1]), Convert<T3>(buffer[2]), Convert<T4>(buffer[3]));
}
public static (T1, T2, T3, T4, T5) Scan<T1, T2, T3, T4, T5>() where T1 : IConvertible where T2 : IConvertible where T3 : IConvertible where T4 : IConvertible where T5 : IConvertible
{
var buffer = Scan();
return (Convert<T1>(buffer[0]), Convert<T2>(buffer[1]), Convert<T3>(buffer[2]), Convert<T4>(buffer[3]), Convert<T5>(buffer[4]));
}
public static (T1, T2, T3, T4, T5, T6) Scan<T1, T2, T3, T4, T5, T6>() where T1 : IConvertible where T2 : IConvertible where T3 : IConvertible where T4 : IConvertible where T5 : IConvertible where T6 : IConvertible
{
var buffer = Scan();
return (Convert<T1>(buffer[0]), Convert<T2>(buffer[1]), Convert<T3>(buffer[2]), Convert<T4>(buffer[3]), Convert<T5>(buffer[4]), Convert<T6>(buffer[5]));
}
public static IEnumerable<T> ScanEnumerable<T>() where T : IConvertible => Scan().Select(Convert<T>);
private static string[] Scan()
{
var line = Console.ReadLine()?.Trim() ?? string.Empty;
return string.IsNullOrEmpty(line) ? Array.Empty<string>() : line.Split(' ');
}
private static T Convert<T>(string value) where T : IConvertible => (T)System.Convert.ChangeType(value, typeof(T));
}
}
}
提出情報
ジャッジ結果
| セット名 |
Sample |
All |
| 得点 / 配点 |
0 / 0 |
300 / 300 |
| 結果 |
|
|
| セット名 |
テストケース |
| Sample |
00_sample_01.txt, 00_sample_02.txt |
| All |
00_sample_01.txt, 00_sample_02.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt |
| ケース名 |
結果 |
実行時間 |
メモリ |
| 00_sample_01.txt |
AC |
75 ms |
27444 KiB |
| 00_sample_02.txt |
AC |
80 ms |
27428 KiB |
| 01_test_01.txt |
AC |
131 ms |
45964 KiB |
| 01_test_02.txt |
AC |
75 ms |
27244 KiB |
| 01_test_03.txt |
AC |
74 ms |
27296 KiB |
| 01_test_04.txt |
AC |
125 ms |
46212 KiB |
| 01_test_05.txt |
AC |
109 ms |
46028 KiB |
| 01_test_06.txt |
AC |
120 ms |
46048 KiB |
| 01_test_07.txt |
AC |
128 ms |
46400 KiB |
| 01_test_08.txt |
AC |
80 ms |
27476 KiB |
| 01_test_09.txt |
AC |
84 ms |
27460 KiB |
| 01_test_10.txt |
AC |
88 ms |
27284 KiB |
| 01_test_11.txt |
AC |
72 ms |
27312 KiB |
| 01_test_12.txt |
AC |
98 ms |
46024 KiB |
| 01_test_13.txt |
AC |
82 ms |
33092 KiB |
| 01_test_14.txt |
AC |
83 ms |
30084 KiB |
| 01_test_15.txt |
AC |
89 ms |
32308 KiB |