Palin SPOJ

Embed Size (px)

DESCRIPTION

Competitive programming

Citation preview

#include #include#include#includeusing namespace std;int k=0;int main(){ int t,n,pos,mid,index,rem=0; vector palin; cin>>t; while(t--) { cin>>n; pos=log10(n); for(int i=0;i=0) { palin[pos-index]=palin[index]; //case of '9' need not be considered index=index-1; } } else { work(palin,index,pos-index); if(k>0 && (pos-k)>0) { palin[pos-k]=palin[k]; k--; } } } } else //for even { mid=pos/2; int flag=1; //checking palindrome for(int i=mid;i>=0 && flag==1;i--) { if(palin[i]!=palin[pos-i]) { flag=0; index=i;//for future use } } if(flag) { palin[mid]+=1; palin[mid+1]=palin[mid]; } else { if(palin[index]>palin[pos-index]) { palin[pos-index]=palin[index]; index-=1; while(index>=0) { palin[pos-index]=palin[index]; index-=1; } } else { work(palin,index,pos-index); if(k>0 && (pos-k)>0) { palin[pos-k]=palin[k]; k--; } } } } for(int i=0;i