Codeforces Round #507 (Div. 2, based on Olympiad of Metropolises)

题目链接:https://codeforces.com/contest/1040

A - Palindrome Dance

int x[1005];
void test_case() {
    int n, a, b;
    scanf("%d%d%d", &n, &a, &b);
    for(int i = 1; i <= n; ++i)
        scanf("%d", &x[i]);
    int sum = 0;
    for(int i = 1; i <= n / 2; ++i) {
        if(x[i] == 0) {
            if(x[n + 1 - i] == 1) {
                puts("-1");
                return;
            } else if(x[n + 1 - i] == 2)
                sum += a;
        } else if(x[i] == 1) {
            if(x[n + 1 - i] == 0) {
                puts("-1");
                return;
            } else if(x[n + 1 - i] == 2)
                sum += b;
        } else {
            if(x[n + 1 - i] == 0)
                sum += a;
            else if(x[n + 1 - i] == 1)
                sum += b;
            else
                sum += 2 * min(a, b);
        }
    }
    if(n % 2 == 1 && x[(n + 1) / 2] == 2)
        sum += min(a, b);
    printf("%d\n", sum);
}
上一篇:【Manacher Algorithm】POJ 3974 Palindrome(模板)


下一篇:leetcode#9Palindrome Number