Immediate Decodability
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 2329 Accepted Submission(s): 1205
Examples: Assume an alphabet that has symbols {A, B, C, D}
The following code is immediately decodable:
A:01 B:10 C:0010 D:0000
but this one is not:
A:01 B:10 C:010 D:0000 (Note that A is a prefix of C)
#include<cstdio>
#include<iostream>
#include<cstring>
#include<vector>
#include<algorithm>
using namespace std;
vector<string>vec;
int main()
{
string s;
int i,success=1,times=1;
while(cin>>s)
{
if(s=="9")
{
sort(vec.begin(),vec.end());
for(i=1;i<vec.size();i++)
{
if(vec[i].substr(0,vec[i-1].size())==vec[i-1])
{
success=0;
break;
}
}
if(success==1)
{
printf("Set %d is immediately decodable\n",times++);
}
else
{
printf("Set %d is not immediately decodable\n",times++);
}
vec.clear();
success=1;
}
else
{
vec.push_back(s);
}
}
}