290 2021. 07. 18 20:25:59 Szin Attila Dinamit cpp14 Hibás válasz 23/50 4ms 2344 KiB
#include <bits/stdc++.h>
using namespace std;

void printq(priority_queue<int> q)
{
  cout << "queue: ";
  while(!q.empty()){
    cout << q.top() << " ";
    q.pop();
  }
  cout << "\n";
}

int main() {
	int n,m,k;
  cin >> n >> m >> k;
  
  vector<vector<int> > tabla, dp(n+1, vector<int>(m, 0));
  priority_queue<int> mo;
  
  for(int i = 0; i < n; i++) {
    vector<int> v;
    for(int j = 0; j < m; j++) {
      int x;
      cin >> x;
      v.push_back(x);
    }
    tabla.push_back(v);
  }
  
  dp[0][0] = tabla[0][0];
  
  for(int i = 1; i < n; i++) {
    dp[i][0] = tabla[i][0] + dp[i-1][0];
  }
  for(int i = 1; i < m; i++) {
    dp[0][i] = tabla[0][i] + dp[0][i-1];
  }
  
  for(int i = 1; i < n; i++) {
    for(int j = 1; j < m; j++) {
      dp[i][j] = min(dp[i-1][j], dp[i][j-1]) + tabla[i][j];
    }
  }
  
  /*cout << "dp: " << "\n";
  for(int i = 0; i < n; i++) {
    for(int j = 0; j < m; j++) {
      cout << dp[i][j] << " ";
    }
    cout << "\n";
  }*/
  
  int i = n-1, j = m-1;
  while(i > 0 || j > 0)
  {
    //cout << "i: " << i << " j: " << j << " \n";
    mo.push(tabla[i][j]);
    if(i == 0) {
      j--;
    }
    else if(j == 0) {
      i--;
    }
    else {
      if(dp[i-1][j] < dp[i][j-1]) {
        i--;
      }
      else {
        j--;
      }
    }
  }
  mo.push(tabla[i][j]);
  
  //printq(mo);
  while(k--) {
    int curr = mo.top();
    mo.pop();
    
    mo.push(curr/2);
  }
  //printq(mo);
  
  int ki = 0;
  while(!mo.empty()) 
  {
    ki += mo.top();
    mo.pop();
  }
  cout << ki << "\n";
	return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 23/50
1 Elfogadva 0/0 4ms 1988 KiB
2 Hibás válasz 0/0 2ms 2100 KiB
3 Elfogadva 2/2 2ms 2144 KiB
4 Elfogadva 2/2 2ms 2164 KiB
5 Elfogadva 3/3 2ms 2172 KiB
6 Elfogadva 3/3 2ms 2184 KiB
7 Elfogadva 2/2 2ms 2200 KiB
8 Elfogadva 3/3 2ms 2212 KiB
9 Hibás válasz 0/2 1ms 2216 KiB
10 Elfogadva 2/2 1ms 2216 KiB
11 Elfogadva 3/3 1ms 2224 KiB
12 Hibás válasz 0/3 1ms 2224 KiB
13 Hibás válasz 0/2 1ms 2232 KiB
14 Elfogadva 3/3 1ms 2240 KiB
15 Hibás válasz 0/2 2ms 2256 KiB
16 Hibás válasz 0/3 2ms 2268 KiB
17 Hibás válasz 0/2 2ms 2276 KiB
18 Hibás válasz 0/3 2ms 2292 KiB
19 Hibás válasz 0/2 2ms 2300 KiB
20 Hibás válasz 0/3 2ms 2316 KiB
21 Hibás válasz 0/2 2ms 2332 KiB
22 Hibás válasz 0/3 2ms 2344 KiB