#include<cstdio> #include<iostream> #include<cstring> using namespace std; int dp[1010][1010]; char result[1010]; int ptr=0; int mini_character(int i,int j,char data[]) { if(i>j)return 0; if(data[i]==data[j]) { dp[i][j]= mini_character(i+1,j-1,data); } if(dp[i][j]!=-1) return dp[i][j]; else { dp[i][j]=min(mini_character(i,j-1,data),mini_character(i+1,j,data))+1; } return dp[i][j]; } void create_result(int i,int j,char data[]) { if(i>j)return; if(i==j) { result[ptr++]=data[j];return; } else if(data[i]==data[j]) { result[ptr++]=data[i]; create_result(i+1,j-1,data); result[ptr++]=data[j]; } else if(dp[i][j-1]<=dp[i+1][j]) { result[ptr++]=data[j]; create_result(i,j-1,data); result[ptr++]=data[j]; } else { result[ptr++]=data[i]; create_result(i+1,j,data); result[ptr++]=data[i]; } } int main() { //freopen("c:\\in.txt","r",stdin); char data[1010]; while(gets(data)) { ptr=0; memset(dp,-1,sizeof dp); int t= mini_character(0,strlen(data)-1,data); cout<<dp[0][strlen(data)-1]; create_result(0,strlen(data)-1,data); result[ptr]=0; cout<<" "<<result<<endl; } return 0; }
রবিবার, ১৮ আগস্ট, ২০১৩
Solution code of uva 10453(make palindrome)
Labels:
uva solution
এতে সদস্যতা:
মন্তব্যগুলি পোস্ট করুন (Atom)
0 comments:
একটি মন্তব্য পোস্ট করুন