4675 2023. 03. 30 20:46:31 Erik_Gepard Dinamit cpp17 Hibás válasz 23/50 3ms 4140 KiB
#include <bits/stdc++.h>
using namespace std;

#define pii pair<int, int>
#define se second
#define fi first
#define pb push_back
#define mp make_pair
#define int long long

void solve(){
    int n, m, d;
    cin>>n>>m>>d;
    vector<vector<int>> dp(n+1, vector<int>(m+1));
    vector<vector<int>> from(n+1, vector<int>(m+1)); //1 fentről i-1, 2 balról j-1
    vector<vector<int>> p(n+1, vector<int>(m+1));
    for(int i=1; i<=n; i++){
        for(int j=1; j<=m; j++){
            cin>>p[i][j];
        }
    }
    for(int i=1; i<=n; i++){
        for(int j=1; j<=m; j++){
            if(i==1 && j==1){
                dp[i][j]=p[i][j];
            }
            else if(i==1){
                dp[i][j]=dp[i][j-1]+p[i][j];
                from[i][j]=2;
            }
            else if(j==1){
                dp[i][j]=dp[i-1][j]+p[i][j];
                from[i][j]=1;
            }
            else{
                if(dp[i-1][j]<dp[i][j-1]){
                    dp[i][j]=dp[i-1][j]+p[i][j];
                    from[i][j]=1;
                }
                else{
                    dp[i][j]=dp[i][j-1]+p[i][j];
                    from[i][j]=2;
                }
            }
        }
    }
    pii most={n, m};
    priority_queue<int> ans;
    while(most.fi>0 && most.se>0){
        ans.push(p[most.fi][most.se]);
        if(from[most.fi][most.se]==1){
            most.fi--;
        }
        else if(from[most.fi][most.se]==2){
            most.se--;
        }
        else break;
    }
    for(int i=0; i<d; i++){
        int x=ans.top();
        ans.pop();
        x/=2;
        ans.push(x);
    }
    int vege=0;
    while(!ans.empty()){
        vege+=ans.top();
        ans.pop();
    }
    cout<<vege<<"\n";
}

signed main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    solve();
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 23/50
1 Elfogadva 0/0 3ms 1828 KiB
2 Hibás válasz 0/0 3ms 2236 KiB
3 Elfogadva 2/2 3ms 2452 KiB
4 Elfogadva 2/2 3ms 2588 KiB
5 Elfogadva 3/3 3ms 2800 KiB
6 Elfogadva 3/3 3ms 3008 KiB
7 Elfogadva 2/2 3ms 3096 KiB
8 Elfogadva 3/3 3ms 3160 KiB
9 Hibás válasz 0/2 3ms 3176 KiB
10 Elfogadva 2/2 2ms 3176 KiB
11 Elfogadva 3/3 2ms 3176 KiB
12 Hibás válasz 0/3 2ms 3184 KiB
13 Hibás válasz 0/2 3ms 3404 KiB
14 Elfogadva 3/3 2ms 3488 KiB
15 Hibás válasz 0/2 3ms 3780 KiB
16 Hibás válasz 0/3 3ms 3736 KiB
17 Hibás válasz 0/2 3ms 3736 KiB
18 Hibás válasz 0/3 3ms 3856 KiB
19 Hibás válasz 0/2 3ms 3808 KiB
20 Hibás válasz 0/3 3ms 3952 KiB
21 Hibás válasz 0/2 3ms 4140 KiB
22 Hibás válasz 0/3 3ms 4096 KiB