Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdio>
- #include <algorithm>
- #include <cstring>
- #include <string>
- #include <cctype>
- #include <stack>
- #include <queue>
- #include <vector>
- #include <map>
- #include <sstream>
- #include <set>
- #include <math.h>
- using namespace std;
- struct input{
- int val;
- input* next;
- int sum;
- };
- static int dp[6];
- int ky(input a[3][3]){
- int store[9] = {0};
- int k = 0;
- for(int i = 0; i < 3; i++){
- for(int j = 0; j < 3; j++){
- store[k] = a[i][j].next->val+a[i][j].next->next->val;
- k++;
- }
- }
- for(int i = 0; i < 3; i++){
- for(int j = 0; j < 3; j++){
- a[i][j].val = store[i*3+j];
- }
- }
- for(int i = 0; i < 3; i++){
- for(int j = 0; j < 3; j++){
- a[i][j].sum =min(a[(i+1)%3][(j+1)%3].val+a[(i+2)%3][(j+2)%3].val,
- a[(i+1)%3][(j+2)%3].val+a[(i+2)%3][(j+1)%3].val);
- a[i][j].sum += a[i][j].val;
- }
- }
- for(int i = 0; i < 9; i++) cout << store[i] << ' ' ;
- cout << endl;
- cout << a[0][0].sum;
- return 1;
- }
- int main() {
- int arr[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
- input a[3][3];
- for(int i = 0; i < 3; i++){
- for(int j = 0; j < 3; j++){
- a[i][j].val = arr[i][j];
- if(i != 2) a[i][j].next = &a[i+1][j];
- else a[i][j].next = &a[0][j];
- }
- }
- ky(a);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment