Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- int n,m,x,y,z,a[505],mx;
- //int dp[505][22][22];
- void task(int b1,int b2,int po,int ch)
- {
- cout<<y++<<endl;
- // cout<<b1<<" "<<b2<<" "<<po<<" "<<ch<<endl;
- if(po==n)
- {
- // cout<<" get = "<<ch<<endl;
- if(mx>ch)
- mx=ch;
- return;
- }
- if(b1==a[po] || b2==a[po])
- {
- task(b1,b2,po+1,ch);
- }
- else if(b2==0 && b1!=0)
- {
- task(b1,a[po],po+1,ch+1);
- }
- else
- {
- task(a[po],b2,po+1,ch+1);
- task(b1,a[po],po+1,ch+1);
- }
- //cout<<dp[po][b1][b2]<<endl;
- }
- int main()
- {
- //freopen("in.txt","r",stdin);
- //freopen("ot.txt","w",stdout);
- int t,j,k,i;
- cin>>t;
- while(t--)
- {
- y=0;
- mx=500005;
- //memset(dp,-1,sizeof(dp));
- cin>>n;
- for(i=0;i<n;i++)
- {
- cin>>a[i];
- }
- task(0,0,0,0);
- cout<<"ans= "<<mx<<endl;
- }
- }
Add Comment
Please, Sign In to add comment