Submission #1132932

#TimeUsernameProblemLanguageResultExecution timeMemory
1132932DangKhoizzzzBridž (COCI17_bridz)C++20
50 / 50
1 ms328 KiB
#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")

#include <bits/stdc++.h>
#define ll long long
#define fi first
#define se second
#define pii pair <int , int>
#define ar3 array <int , 3>

using namespace std;

const int INF = 1e9 + 7;
const int maxn = 2e5 + 7;
const int maxx = 1e5;

int n , a[501] , dp[501][100001] , sum = 0;

void solve() // solve bai truoc
{
    cin >> n;
    for(int i = 1; i <= n; i++) cin >> a[i];

    sum = accumulate(a+1 , a+n+1 , 0);

    for(int i = 0; i <= n; i++)
    {
        for(int j = 0; j <= maxx; j++) dp[i][j] = -INF;
    }

    dp[0][0] = 0;

    for(int i = 1; i <= n; i++)
    {
        for(int j = 0; j <= maxx; j++)
        {
            dp[i][j] = max(dp[i][j] , dp[i-1][j]);

            if(j + a[i] <= maxx)
            {
                dp[i][j + a[i]] = max(dp[i][j + a[i]] , dp[i-1][j] + a[i]);
            }

            int diff = abs(dp[i-1][j] - (dp[i-1][j] - j + a[i]));

            if(diff > maxx) continue;

            if(dp[i-1][j] - j + a[i] >= dp[i-1][j])
            {
                dp[i][diff] = max(dp[i][diff] , dp[i-1][j] - j + a[i]);
            }
            else
            {
                dp[i][diff] = max(dp[i][diff] , dp[i-1][j]);
            }
        }
    }
    cout << sum - dp[n][0] << '\n';
}

map <char , int > val;

void solve_4()
{

    val['A'] = 4;
    val['K'] = 3;
    val['Q'] = 2;
    val['J'] = 1;
    val['X'] = 0;

    int n; cin >> n; int ans = 0;
    
    while(n--)
    {
        string s; cin >> s;

        for(char ch: s)
        {
            ans += val[ch];
        }
    }
    cout << ans << '\n';
}


int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);
    solve_4();
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...