Submission #1328917

#TimeUsernameProblemLanguageResultExecution timeMemory
1328917FaggiAliens (IOI16_aliens)C++20
0 / 100
1 ms344 KiB
#include <bits/stdc++.h>
#define ll long long
#define sz(x) int(x.size())
#define forn(i, n) for (i = 0; i < n; i++)
#define all(x) x.begin(), x.end()
#define pb push_back
#define mp make_pair
#define fr first
#define se second

using namespace std;

ll INF=1e12+1;

long long take_photos(int n, int m, int k, std::vector<int> r, std::vector<int> c) {
    ll i, dis, actMa=-1;
    vector<ll>ma(m+1,0);
    for(i=0; i<n; i++)
    {
        if(c[i]<r[i])
        {
            dis=r[i]-c[i];
            c[i]=r[i]+dis;
        }
        ma[r[i]]=max(ma[r[i]],1ll*c[i]);
    }

    vector<pair<ll,ll>>q;
    q.pb({-1,-1});
    for(i=0; i<m; i++)
    {
        if(actMa>=ma[i])
            continue;
        actMa=ma[i];
        q.pb({r[i],ma[i]});
    }
    vector<vector<ll>>dp(sz(q)+1,vector<ll>(k+1,INF));
    ll j, tam, o;

    dp[0][0]=0;

    for(i=1; i<sz(q); i++)
    {
        for(j=i-1; j>=0; j--)
        {
            tam=q[i].se-q[j+1].fr+1;
            tam=tam*tam;
            for(o=0; o<k; o++)
            {
                dp[i][o+1]=min(dp[i][o+1],dp[j][o]+tam);
            }
        }
    }
    ll ans=INF;
    for(i=0; i<=k; i++)
        ans=min(ans,dp[sz(q)-1][i]);
    return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...