Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <map>
- using namespace std;
- int mat[110][110];
- int dp[110][110];
- int main()
- {
- int n;
- cin>>n;
- for (int i=0;i<n+5;i++)
- {
- for (int j=0;j<n+5;j++)
- {
- dp[i][j]= (1e9);
- mat[i][j]=-1;
- }
- }
- for (int i=0; i<n;i++)
- {
- for (int j=0; j < n - i ;j++)
- {
- cin>>mat[i][j];
- }
- }
- dp[0][0] = mat[0][0];
- for(int j = 1; j < n; ++j) {
- dp[0][j] = dp[0][j - 1] + mat[0][j];
- }
- for(int i = 1; i < n; ++i) {
- dp[i][0] = dp[i - 1][0] + mat[i][0];
- }
- for(int i = 0; i < n; ++i) {
- for(int j = 0; j < n - i; ++j) {
- if(i > 0) {
- dp[i][j] = min(dp[i][j], dp[i - 1][j] + mat[i][j]);
- }
- if(j > 0) {
- dp[i][j] = min(dp[i][j], dp[i][j - 1] + mat[i][j]);
- }
- if(i > 0 and j > 0) {
- dp[i][j] = min(dp[i][j], dp[i - 1][j - 1] + mat[i][j]);
- }
- }
- }
- int najmal = (1e9);
- int x, y;
- for(int i = 0; i < n; ++i){
- if(dp[i][n - 1 - i] < najmal) {
- najmal = dp[i][n - 1 - i];
- x = i + 1;
- y = n - i;
- }
- }
- cout << najmal << endl << x << " " << y << endl;
- return 0;
- }
- /*
- 3
- 1| 1 2
- -|---
- 2| 1
- 2|
- */
Advertisement
Add Comment
Please, Sign In to add comment