Submission #1988036
Source Code Expand
#include <iostream> #include <cmath> #include <cstring> #include <vector> using namespace std; typedef long long ll; int n , m; vector<ll> x[160]; vector<ll> d[160]; ll dp[160][10][80]; int main() { for(int i = 0;i < 160;i++) { for(int j = 0;j < 10;j++) { for(int k = 0;k < 80;k++) { dp[i][j][k] = static_cast<ll>(1e18); } } } cin >> n >> m; for(int i = 1;i <= n;i++) { int k; cin >> k; for(int j = 0;j < k;j++) { int xt,dt; cin >> xt >> dt; x[i].push_back(xt); d[i].push_back(dt); } } for(int i = 0;i < x[1].size();i++) { dp[1][i][0] = 0; } for(int i = 0;i < x[2].size();i++) { dp[2][i][1] = 0; } for(int i = 2;i <= n;i++) { for(int j = 0;j < x[i].size();j++) { for(int k = 0;k < x[i - 1].size();k++) { for(int l = 0;l <= m;l++) { ll cost = (d[i][j] + d[i - 1][k]) * abs(x[i][j] - x[i - 1][k]); dp[i][j][l] = min(dp[i][j][l] , dp[i - 1][k][l] + cost); } } } if(i > 2) { for(int j = 0;j < x[i].size();j++) { for(int k = 0;k < x[i - 2].size();k++) { for(int l = 0;l <= m;l++) { ll cost = (d[i][j] + d[i - 2][k]) * abs(x[i][j] - x[i - 2][k]); dp[i][j][l] = min(dp[i][j][l] , dp[i - 2][k][l - 1] + cost); } } } } } ll result = static_cast<ll>(1e18); for(int i = 0;i < x[n - 1].size();i++) { for(int j = 0;j <= m - 1;j++) { result = min(result , dp[n - 1][i][j]); } } for(int i = 0;i < x[n].size();i++) { for(int j = 0;j <= m;j++) { result = min(result , dp[n][i][j]); } } cout << result <<endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - ぴょんぴょん川渡り |
User | niuez |
Language | C++14 (GCC 5.4.1) |
Score | 20 |
Code Size | 1717 Byte |
Status | AC |
Exec Time | 7 ms |
Memory | 1280 KB |
Judge Result
Set Name | set01 | set02 | set03 | set04 | set05 | set06 | set07 | set08 | set09 | set10 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | ||||||||||||||||||||
Status |
|
|
|
|
|
|
|
|
|
|
Set Name | Test Cases |
---|---|
set01 | data1 |
set02 | data2 |
set03 | data3 |
set04 | data4 |
set05 | data5 |
set06 | data6 |
set07 | data7 |
set08 | data8 |
set09 | data9 |
set10 | data10 |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
data1 | AC | 2 ms | 1280 KB |
data10 | AC | 7 ms | 1280 KB |
data2 | AC | 2 ms | 1280 KB |
data3 | AC | 2 ms | 1280 KB |
data4 | AC | 2 ms | 1280 KB |
data5 | AC | 3 ms | 1280 KB |
data6 | AC | 4 ms | 1280 KB |
data7 | AC | 5 ms | 1280 KB |
data8 | AC | 4 ms | 1280 KB |
data9 | AC | 4 ms | 1280 KB |