21822022-12-30 06:07:00bzsofiaDinamitcpp11Hibás válasz 9/503ms3408 KiB
#include <iostream>
#include <queue>

using namespace std;

priority_queue <long long> v;
long long i, n, j, m, bomb, sum[41][41], num[41][41], osszeg, a;

int main()
{
    cin>>n>>m>>bomb;

    for (i=1; i<=n; ++i)
    {
        for (j=1; j<=m; ++j)
        {
            cin>>num[i][j];

            if (i==1) sum[i][j]=sum[i][j-1]+num[i][j];
            else if (j==1) sum[i][j]=sum[i-1][j]+num[i][j];
            else sum[i][j]=min(sum[i-1][j],sum[i][j-1])+num[i][j];
        }
    }

    i=n;
    j=m;
    while (sum[i][j]>0)
    {
        v.push(num[i][j]);

        if (sum[i-1][j]<sum[i][j-1] || j==1) --i;
        else --j;
    }

    for (i=1; i<=bomb; ++i)
    {
        a=v.top()/2;
        v.pop();
        v.push(a);
    }

    while (!v.empty())
    {
        osszeg+=v.top();
        v.pop();
    }

    cout<<osszeg;

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base9/50
1Elfogadva0/03ms1892 KiB
2Hibás válasz0/03ms2132 KiB
3Elfogadva2/23ms2348 KiB
4Hibás válasz0/23ms2504 KiB
5Hibás válasz0/33ms2580 KiB
6Hibás válasz0/33ms2712 KiB
7Elfogadva2/23ms2784 KiB
8Elfogadva3/33ms2912 KiB
9Hibás válasz0/22ms2984 KiB
10Elfogadva2/22ms3244 KiB
11Hibás válasz0/32ms3180 KiB
12Hibás válasz0/32ms3280 KiB
13Hibás válasz0/22ms3216 KiB
14Hibás válasz0/32ms3068 KiB
15Hibás válasz0/23ms3072 KiB
16Hibás válasz0/33ms3200 KiB
17Hibás válasz0/23ms3204 KiB
18Hibás válasz0/33ms3204 KiB
19Hibás válasz0/23ms3204 KiB
20Hibás válasz0/33ms3332 KiB
21Hibás válasz0/23ms3408 KiB
22Hibás válasz0/33ms3408 KiB