結果
問題 |
No.798 コレクション
|
ユーザー |
![]() |
提出日時 | 2018-08-07 15:37:38 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 650 bytes |
コンパイル時間 | 1,054 ms |
コンパイル使用メモリ | 79,376 KB |
実行使用メモリ | 18,944 KB |
最終ジャッジ日時 | 2024-06-28 16:53:59 |
合計ジャッジ時間 | 1,774 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 15 WA * 8 |
ソースコード
#include<iostream> #include<vector> #include<algorithm> 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<Item> 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<vector<int>> dp(n+1, vector<int>(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; }