#include <iostream>
#include <string>
#include <sstream>
#include <vector>
using namespace std;
vector<unsigned char> hexToByteArray(string input_hash)
{
vector<unsigned char> byteArray;
for (unsigned int i = 0; i < input_hash.length(); i += 2)
{
string byteString = input_hash.substr(i, 2);
unsigned char byte = (unsigned char) strtol(byteString.c_str(), NULL, 16);
byteArray.push_back(byte);
}
return byteArray;
}
int main(int argc, char* argv[])
{
string input_hash;
if(argc>1)
{
input_hash=argv[1];
}
else
{
cout<<"Enter the input hash:";input_hash;
}
vector<unsigned char> byte_array = hexToByteArray(input_hash);
vector<int> frequencies;
for (unsigned int i = 0; i < byte_array.size(); i++)
{
int frequency = byte_array[i] * 20; // mapping each byte of RICK to a frequency
frequencies.push_back(frequency);
}
cout<<"Frequency: ";
for(int i=0;i<frequencies.size();i++)
{
cout<<frequencies[i]<<" ";
}
cout<<endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPHZlY3Rvcj4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZlY3Rvcjx1bnNpZ25lZCBjaGFyPiBoZXhUb0J5dGVBcnJheShzdHJpbmcgaW5wdXRfaGFzaCkKewogICAgdmVjdG9yPHVuc2lnbmVkIGNoYXI+IGJ5dGVBcnJheTsKICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgaW5wdXRfaGFzaC5sZW5ndGgoKTsgaSArPSAyKQogICAgewogICAgICAgIHN0cmluZyBieXRlU3RyaW5nID0gaW5wdXRfaGFzaC5zdWJzdHIoaSwgMik7CiAgICAgICAgdW5zaWduZWQgY2hhciBieXRlID0gKHVuc2lnbmVkIGNoYXIpIHN0cnRvbChieXRlU3RyaW5nLmNfc3RyKCksIE5VTEwsIDE2KTsKICAgICAgICBieXRlQXJyYXkucHVzaF9iYWNrKGJ5dGUpOwogICAgfQogICAgcmV0dXJuIGJ5dGVBcnJheTsKfQoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKewogICAgc3RyaW5nIGlucHV0X2hhc2g7CiAgICBpZihhcmdjPjEpCiAgICB7CiAgICAgICAgaW5wdXRfaGFzaD1hcmd2WzFdOwogICAgfQogICAgZWxzZQogICAgewogICAgICAgIGNvdXQ8PCJFbnRlciB0aGUgaW5wdXQgaGFzaDoiO2lucHV0X2hhc2g7CiAgICB9CiAgICB2ZWN0b3I8dW5zaWduZWQgY2hhcj4gYnl0ZV9hcnJheSA9IGhleFRvQnl0ZUFycmF5KGlucHV0X2hhc2gpOwogICAgdmVjdG9yPGludD4gZnJlcXVlbmNpZXM7CgogICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBieXRlX2FycmF5LnNpemUoKTsgaSsrKQogICAgewogICAgICAgIGludCBmcmVxdWVuY3kgPSBieXRlX2FycmF5W2ldICogMjA7IC8vIG1hcHBpbmcgZWFjaCBieXRlIG9mIFJJQ0sgdG8gYSBmcmVxdWVuY3kKICAgICAgICBmcmVxdWVuY2llcy5wdXNoX2JhY2soZnJlcXVlbmN5KTsKICAgIH0KICAgIGNvdXQ8PCJGcmVxdWVuY3k6ICI7CiAgICBmb3IoaW50IGk9MDtpPGZyZXF1ZW5jaWVzLnNpemUoKTtpKyspCiAgICB7CiAgICAgICAgY291dDw8ZnJlcXVlbmNpZXNbaV08PCIgIjsKICAgIH0KICAgIGNvdXQ8PGVuZGw7CiAgICByZXR1cm4gMDsKfQ==