145742025-01-17 09:16:40csdavidDinamitcpp17Hibás válasz 23/502ms548 KiB
#include <iostream>
#include <set>
using namespace std;

struct cella{
    int elozo;
    int mag, dp;
};

int main()
{
    multiset<int> s;
    int n, m, k, osszeg=0;
    cin >> n >> m >> k;
    cella a[n][m];
    for(int i=0; i<n; i++){
        for(int j=0; j<m; j++){
            cin >> a[i][j].mag;
            a[i][j].dp=a[i][j].mag;
        }
    }
    a[0][0].elozo=-1;
    for(int i=1; i<n; i++){
        a[i][0].dp+=a[i-1][0].dp;
        a[i][0].elozo=0;
    }
    for(int j=1; j<m; j++){
        a[0][j].dp+=a[0][j-1].dp;
        a[0][j].elozo=1;
    }
    for(int i=1; i<n; i++){
        for(int j=1; j<m; j++){
            if(a[i-1][j].dp<a[i][j-1].dp){
                a[i][j].dp+=a[i-1][j].dp;
                a[i][j].elozo=0;
            }
            else{
                a[i][j].dp+=a[i][j-1].dp;
                a[i][j].elozo=1;
            }
        }
    }
    int i=n-1, j=m-1;
    osszeg=a[i][j].dp;
    set<int>::iterator it;
    do{
        s.insert(a[i][j].mag);
        if(a[i][j].elozo==0){
            i--;
        }
        else if(a[i][j].elozo==1){
            j--;
        }
    }while(a[i][j].elozo!=-1);
    s.insert(a[0][0].mag);
    while(k--){
        it=s.end();
        --it;
        int x=*it;
        osszeg-=x;
        s.erase(it);
        x=x/2;
        osszeg+=x;
        s.insert(x);
    }
    cout << osszeg;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base23/50
1Elfogadva0/01ms316 KiB
2Hibás válasz0/02ms316 KiB
3Elfogadva2/22ms316 KiB
4Elfogadva2/22ms316 KiB
5Elfogadva3/32ms496 KiB
6Elfogadva3/32ms508 KiB
7Elfogadva2/22ms508 KiB
8Elfogadva3/32ms316 KiB
9Hibás válasz0/21ms316 KiB
10Elfogadva2/21ms316 KiB
11Elfogadva3/31ms316 KiB
12Hibás válasz0/31ms316 KiB
13Hibás válasz0/21ms316 KiB
14Elfogadva3/31ms316 KiB
15Hibás válasz0/22ms392 KiB
16Hibás válasz0/31ms316 KiB
17Hibás válasz0/22ms316 KiB
18Hibás válasz0/32ms316 KiB
19Hibás válasz0/22ms316 KiB
20Hibás válasz0/32ms316 KiB
21Hibás válasz0/22ms548 KiB
22Hibás válasz0/32ms316 KiB