#include #include using namespace std; int n; int dp[1010]; vectorv; vectorv1; pair backtrack[1010]; int rec(int i=0){ if(i==n){ backtrack[i] = make_pair(-1, -1); return 0; } if(dp[i]!=-1){ return(dp[i]); } int result=2e9; int sam = rec(i+1)+v[i]; int spoen = 2e9; if(i+1>n; for(int i=0; i>a; v.push_back(a); dp[i]=-1; } for(int j=0; j>b; v1.push_back(b); } rec(0); int at =0 ; while(at < n) { if(backtrack[at].second == 1) { cout << backtrack[at].first - 1 << " " << backtrack[at].first << endl; } at = backtrack[at].first; } return 0; }