Cod sursa(job #3161385)

Utilizator andrei_marciucMarciuc Andrei andrei_marciuc Data 26 octombrie 2023 19:39:06
Problema Wanted Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include<fstream>
#include<algorithm>
using namespace std;
pair<int,int> a[220];
long long b[220][220][2];
int n;
long long div(int st,int dr,int tata) {
    int i, semn;
    if(tata < st)
        semn = 1;
    else semn = 0;

    if(b[st][dr][semn] < ((1LL<<40)) && b[st][dr][semn])
        return b[st][dr][semn];
    if(st > dr)
        return 0;

    b[st][dr][semn] = 1LL << 40;
    for(i = st; i <= dr; i++) {
        b[st][dr][semn] = min(max(div(st, i - 1, i), div(i + 1, dr, i) ) + a[i].second + a[tata].second + max(a[tata].first - a[i].first, -a[tata].first + a[i].first), b[st][dr][semn]); 
    }
    return b[st][dr][semn];
}
 
int main()
{
    int  i;
    ifstream f("wanted.in");
    ofstream g("wanted.out");
    f >> n;
    for(i = 1; i <= n; i++)
        f >> a[i].first >> a[i].second;
    
    sort( a + 1, a + n + 1);
    g << div(1, n, 0);
    
    return 0;
}