#include #include #include #include #include #include using namespace std; #define int long long #define rep(i,n) for(int i = 0; i < (n); i++) #define INF ((long long)1e18) #define MOD ((int)1e9+7) #define endl "\n" #define yn(f) ((f)?"Yes":"No") #define YN(f) ((f)?"YES":"NO") #define MAX 2100 int dp[MAX][MAX]; signed main(){ cin.tie(0); ios::sync_with_stdio(false); cout< AB[MAX]; cin>>N; for(int i = 0; i < N; i++){ cin>>AB[i].second>>AB[i].first; } sort(AB, AB+N, greater>()); for(int i = 1; i <= N; i++){ for(int j = 0; j <= N/3 && j < i; j++){ dp[i][j] = INF; } } for(int i = 1; i <= N; i++){ for(int j = 0; j <= N/3 && j < i; j++){ if(j)dp[i][j] = min(dp[i-1][j-1], dp[i-1][j] + AB[i-1].second + AB[i-1].first*(i-j-1)); else dp[i][j] = dp[i-1][j] + AB[i-1].second + AB[i-1].first*(i-j-1); // if(j)cout<