#include #include #include using namespace std; #define rep(i,n) for(int i=0;i<(n);i++) int main(){ int n; cin>> n; struct Item{int a, b;}; vector items(n); rep(i, n) cin>> items[i].a>> items[i].b; sort(items.begin(), items.end(), [&](const Item &l, const Item &r){ return l.b>r.b; }); const int inf=1e9; vector> dp(n+1, vector(n+1, inf)); dp[0][0]=0; for(int i=1; i<=n; i++)for(int j=0; j<=i; j++){ dp[i][j]=min(dp[i][j], dp[i-1][j]); if(j>0) dp[i][j]=min(dp[i][j], dp[i-1][j-1]+items[i-1].a+items[i-1].b*(j-1)); } cout<< dp[n][n-n/3]<< endl; return 0; }