Submission #1193464

#TimeUsernameProblemLanguageResultExecution timeMemory
1193464SSKMFAliens (IOI16_aliens)C++20
12 / 100
126 ms2376 KiB
#include "aliens.h"
#include <bits/stdc++.h>
using namespace std;

long long minim[501][501];

long long take_photos(int dorit , int lungime , int limita , vector <int> linie , vector<int> coloana)
{
    vector < pair <int , int> > sir(dorit + 1);
    for (int indice = 0 ; indice < dorit ; indice++)
    { 
        if (coloana[indice] < linie[indice])
            { swap(linie[indice] , coloana[indice]); }

        sir[indice + 1] = {linie[indice] , coloana[indice]};
    }

    sort(sir.begin() , sir.end());

    sir[0] = {-1 , -1};
    for (int secvente = 1 ; secvente <= limita ; secvente++)
        { minim[0][secvente] = 1000000000000000LL; }

    for (int dreapta = 1 ; dreapta <= dorit ; dreapta++)
    {
        minim[dreapta][0] = 1000000000000000LL;
        for (int secvente = 1 ; secvente <= limita ; secvente++) 
        {
            minim[dreapta][secvente] = 1000000000000000LL;
            for (int stanga = dreapta ; stanga ; stanga--)
                { minim[dreapta][secvente] = min(minim[dreapta][secvente] , minim[stanga - 1][secvente - 1] + (sir[dreapta].second - sir[stanga].first + 1) * (sir[dreapta].second - sir[stanga].first + 1) - max(0 , sir[stanga - 1].second - sir[stanga].first + 1) * max(0 , sir[stanga - 1].second - sir[stanga].first + 1)); }
        }
    }

    long long rezultat = 1000000000000000LL;
    for (int secvente = 1 ; secvente <= limita ; secvente++)
        { rezultat = min(rezultat , minim[dorit][secvente]); }

    return rezultat;
}

Compilation message (stderr)

aliens.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
aliens_c.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
#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...