Pagini recente » Cod sursa (job #1196843) | Cod sursa (job #1160745) | Cod sursa (job #1772417) | Cod sursa (job #2791187) | Cod sursa (job #852760)
Cod sursa(job #852760)
#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);
f.close();
g.close();
}