21832022-12-30 06:10:20bzsofiaDinamitcpp11Hibás válasz 23/503ms4800 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 (i==1 && j>1) --j;
        else if (j==1 && i>1) --i;
        else if (sum[i-1][j]<sum[i][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
base23/50
1Elfogadva0/03ms1760 KiB
2Hibás válasz0/03ms1940 KiB
3Elfogadva2/23ms2140 KiB
4Elfogadva2/23ms2348 KiB
5Elfogadva3/33ms2568 KiB
6Elfogadva3/33ms2776 KiB
7Elfogadva2/23ms2992 KiB
8Elfogadva3/33ms3176 KiB
9Hibás válasz0/22ms3268 KiB
10Elfogadva2/22ms3484 KiB
11Elfogadva3/32ms3580 KiB
12Hibás válasz0/32ms3788 KiB
13Hibás válasz0/22ms3868 KiB
14Elfogadva3/32ms3996 KiB
15Hibás válasz0/23ms4076 KiB
16Hibás válasz0/33ms4180 KiB
17Hibás válasz0/23ms4260 KiB
18Hibás válasz0/33ms4352 KiB
19Hibás válasz0/23ms4476 KiB
20Hibás válasz0/33ms4676 KiB
21Hibás válasz0/23ms4772 KiB
22Hibás válasz0/33ms4800 KiB