diff --git a/tre14.cpp b/tre14.cpp new file mode 100644 index 0000000..d0b2528 --- /dev/null +++ b/tre14.cpp @@ -0,0 +1,74 @@ +#include +using namespace std; +#define watch(x) cout << (#x) << " is " << (x) << "\n" +#define pow2(x) ((x)*(x)) +#define max3(a,b,c) max(a,max(b,c)) +#define min3(a,b,c) min(a,min(b,c)) +#define ll long long int +#define eb emplace_back +#define pb push_back +#define mod 1000000007 +#define mp make_pair +#define ff first +#define ss second +#define all(c) (c).begin(),(c).end() +#define nl "\n" +typedef vector vi; +typedef vector vl; +typedef vector< vi > vvi; +typedef vector< vl > vvl; +typedef pair< int,int > ii; +typedef pair< ll,ll> pll; +typedef map< ll,ll> mll; +typedef map< int,int> mii; +struct node *rightside; +struct node *leftside; +void inorder(ll ar[],vl &v,ll n,ll i) +{ + if(i>=n) + return; + inorder(ar,v,n,2*i+1); + v.eb(ar[i]); + inorder(ar,v,n,2*i+2); +} +ll minSwap(vl &v) +{ + vector v1(v.size()); + ll ans = 0ll; + ll n = v.size(); + for(int i=0;i> n; + ll ar[n]; + for(int i=0;i> ar[i]; + vl v; + inorder(ar,v,n,0); + cout << minSwap(v) << nl; + return 0; +}