8472022-01-20 14:07:12Halasz EszterDinamitcpp11Hibás válasz 0/503ms2184 KiB
#include <iostream>
//#include <fstream>
#include <vector>
#include <algorithm>
#define ll long long
using namespace std;

//ifstream cin("dinamit.in");
//ofstream cout("dinamit.out");

vector<ll>v;

ll n,m,i,j,x[101][101],y[101][101],d,db;

void leker(ll i,ll j)
{
    if(i!=1 || j!=1)
    {
        if(y[i-1][j]<y[i][j-1]) leker(i-1,j);
        else leker(i,j-1);
    }
    v.push_back(x[i][j]);
}
ll has(ll a,ll b)
{
    if(a<b) return 0;
    else return 1;
}
int main()
{
    cin>>n>>m>>d;
    for(i=1;i<=n;++i)
        for(j=1;j<=m;++j) cin>>x[i][j];



    for(i=1;i<=m;++i) y[1][i]=y[1][i-1]+x[1][i];
    for(i=1;i<=n;++i) y[i][1]=y[i-1][1]+x[i][1];
    for(i=2;i<=n;++i)
    {
        for(j=2;j<=m;++j)
                y[i][j]=x[i][j]+min(y[i-1][j],y[i][j-1]);
    }

     for(i=0;i<=m;++i) y[0][i]=9999999;
    for(i=0;i<=n;++i) y[i][0]=9999999;
    v.push_back(x[1][1]);
    leker(n,m);



    sort(v.begin(),v.end(),has);

     //for(auto e:v) cout<<e<<"\n";

    while(d>0)
    {
        v[0]=v[0]/2;
        if(v[0]<v[1])
    sort(v.begin(),v.end(),has);
        d--;
    }
    for(auto e:v) db+=e;
    cout<<db-1;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/50
1Elfogadva0/02ms1820 KiB
2Hibás válasz0/03ms2060 KiB
3Hibás válasz0/22ms1980 KiB
4Hibás válasz0/21ms2000 KiB
5Hibás válasz0/32ms2012 KiB
6Hibás válasz0/32ms2024 KiB
7Hibás válasz0/22ms2032 KiB
8Hibás válasz0/32ms2064 KiB
9Hibás válasz0/21ms2020 KiB
10Hibás válasz0/21ms2020 KiB
11Hibás válasz0/31ms2028 KiB
12Hibás válasz0/31ms2036 KiB
13Hibás válasz0/21ms2056 KiB
14Hibás válasz0/31ms2068 KiB
15Hibás válasz0/23ms2108 KiB
16Hibás válasz0/32ms2100 KiB
17Hibás válasz0/23ms2124 KiB
18Hibás válasz0/33ms2128 KiB
19Hibás válasz0/22ms2156 KiB
20Hibás válasz0/32ms2168 KiB
21Hibás válasz0/22ms2160 KiB
22Hibás válasz0/32ms2184 KiB