/* CSEMATTER.BLOGSPOT.IN
Encryption using Hashing */
#include <iostream>
#include<cstring>
#include<cmath>
using namespace std;
int evaluate(string str);
int myatoi(string num)
{
int temp=1,res=0,i=0;
while(num[i]!='\0')
{
res=res+temp*num[i++]-'0';
temp=temp*10;
}
return res;
}
int main()
{
string num;
getline(cin,num);
int num=myatoi(num);
cout<<"\n";
while(num>0)
{
int var;
string str1;
getline(cin,str1);
cout << str1<< "\n";
var=evaluate(str1);
--num;
}
return 0;
}
int evaluate(string str)
{
// cout << "Hello World!" << endl;
int n,i,k,l,int1,int2;
//string str;
// getline(cin,str);
int arr[256]={0},arr_cpyi[256]={0},arr_cpy[256]={0};
for(int j=0;j<str.size();j++)
{
++arr[str[j]];
++arr_cpyi[str[j]];
++arr_cpy[str[j]];
}
// int *ini=&arr_cpy[0];
for(k=0;k<256;k++)
{
for(l=0;l<255;l++)
{
if(arr_cpyi[l]>arr_cpyi[l+1])
{
// cout<<"*";
int temp1=arr_cpyi[l];
arr_cpyi[l]=arr_cpyi[l+1];
arr_cpyi[l+1]=temp1;
}
}
}
int z=0;
for(i=0;i<256;i++)
{
if(arr_cpyi[i]!=0)
++z;
else
continue;
}
int j,q,v=0;
int y=ceil(+(z/2))+1;
// cout<<y<<"\n";
// int y=str.size()-2;
//for(i=255;i>=(256-str.size());i--)
while(y>0)
{
j=0;
q=255;
char ch1,ch2;
// while(arr_cpyi[i]!=arr_cpy[j])
// j++;
while(arr_cpyi[256-z]!=arr_cpy[j])
j++;
while(arr_cpyi[255-v]!=arr_cpy[q])
q--;
// cout<<"j="<<j;
// cout<<"q="<<q<<"\n";
arr_cpy[j]=0;
arr_cpy[q]=0;
// cout<<"j="<<j<<"\n";
// cout<<"q="<<q<<"\n";
// ch=*temp-*ini;
int1=&arr_cpy[j]-&arr_cpy[0];
int2=&arr_cpy[q]-&arr_cpy[0];
ch1=(char)int1;
ch2=(char)int2;
for(int x=0;x<str.size();)
{
if(ch1==str[x])
{
str[x]=ch2;
++x;
}
else if(ch2==str[x])
{
str[x]=ch1;
++x;
}
else
++x;
}
--z;
++v;
--y;
}
cout<< str << endl;
return 0;
}
Encryption using Hashing */
#include <iostream>
#include<cstring>
#include<cmath>
using namespace std;
int evaluate(string str);
int myatoi(string num)
{
int temp=1,res=0,i=0;
while(num[i]!='\0')
{
res=res+temp*num[i++]-'0';
temp=temp*10;
}
return res;
}
int main()
{
string num;
getline(cin,num);
int num=myatoi(num);
cout<<"\n";
while(num>0)
{
int var;
string str1;
getline(cin,str1);
cout << str1<< "\n";
var=evaluate(str1);
--num;
}
return 0;
}
int evaluate(string str)
{
// cout << "Hello World!" << endl;
int n,i,k,l,int1,int2;
//string str;
// getline(cin,str);
int arr[256]={0},arr_cpyi[256]={0},arr_cpy[256]={0};
for(int j=0;j<str.size();j++)
{
++arr[str[j]];
++arr_cpyi[str[j]];
++arr_cpy[str[j]];
}
// int *ini=&arr_cpy[0];
for(k=0;k<256;k++)
{
for(l=0;l<255;l++)
{
if(arr_cpyi[l]>arr_cpyi[l+1])
{
// cout<<"*";
int temp1=arr_cpyi[l];
arr_cpyi[l]=arr_cpyi[l+1];
arr_cpyi[l+1]=temp1;
}
}
}
int z=0;
for(i=0;i<256;i++)
{
if(arr_cpyi[i]!=0)
++z;
else
continue;
}
int j,q,v=0;
int y=ceil(+(z/2))+1;
// cout<<y<<"\n";
// int y=str.size()-2;
//for(i=255;i>=(256-str.size());i--)
while(y>0)
{
j=0;
q=255;
char ch1,ch2;
// while(arr_cpyi[i]!=arr_cpy[j])
// j++;
while(arr_cpyi[256-z]!=arr_cpy[j])
j++;
while(arr_cpyi[255-v]!=arr_cpy[q])
q--;
// cout<<"j="<<j;
// cout<<"q="<<q<<"\n";
arr_cpy[j]=0;
arr_cpy[q]=0;
// cout<<"j="<<j<<"\n";
// cout<<"q="<<q<<"\n";
// ch=*temp-*ini;
int1=&arr_cpy[j]-&arr_cpy[0];
int2=&arr_cpy[q]-&arr_cpy[0];
ch1=(char)int1;
ch2=(char)int2;
for(int x=0;x<str.size();)
{
if(ch1==str[x])
{
str[x]=ch2;
++x;
}
else if(ch2==str[x])
{
str[x]=ch1;
++x;
}
else
++x;
}
--z;
++v;
--y;
}
cout<< str << endl;
return 0;
}
No comments:
Post a Comment