
I checked all possible case as my ability.
Please give me some input and output for which my program give wrong output.
Code: Select all
Remove After Accepted.
Moderator: Board moderators
Code: Select all
Remove After Accepted.
Code: Select all
1
a 0
000
0
Code: Select all
Case #1
aaa
Code: Select all
3
a 0
b 01
c 10
00110001
0
Code: Select all
Case #1
abcab
So "a 0" is not a valid replacement, therefore the input is not valid. I'm not sure if there can be an input like "a 0001", but my AC problem wouldn't work very well with these inputs. If you want, you can try this test case (altought I'm not sure it's a very good one):every character is replaced by a unique positive integer value
Code: Select all
10
a 1
b 5
c 3
d 9
e 2
f 7
g 4
h 8
i 10
j 59
3151013951010101029529531395951259953951235995125910319535192391
Code: Select all
Case #1
cabaacdbaaaaedbedbcacdbdbaebddbcdbaecbddbaebdacadbcbadecda
cabaacdbaaaaedbedbcacdbdbaebddbcdbaecbddbaebdicadbcbadecda
cabaacdbaaaaedbedbcacdbdbaebddbcdbaecbddbaejacadbcbadecda
cabaacdbaaaaedbedbcacdbdbaebddbcdbaecbddbaejicadbcbadecda
cabaacdbaaaaedbedbcacdbdbaebddbcdbaecjdbaebdacadbcbadecda
cabaacdbaaaaedbedbcacdbdbaebddbcdbaecjdbaebdicadbcbadecda
cabaacdbaaaaedbedbcacdbdbaebddbcdbaecjdbaejacadbcbadecda
cabaacdbaaaaedbedbcacdbdbaebddbcdbaecjdbaejicadbcbadecda
cabaacdbaaaaedbedbcacdbdbaejdbcdbaecbddbaebdacadbcbadecda
cabaacdbaaaaedbedbcacdbdbaejdbcdbaecbddbaebdicadbcbadecda
cabaacdbaaaaedbedbcacdbdbaejdbcdbaecbddbaejacadbcbadecda
cabaacdbaaaaedbedbcacdbdbaejdbcdbaecbddbaejicadbcbadecda
cabaacdbaaaaedbedbcacdbdbaejdbcdbaecjdbaebdacadbcbadecda
cabaacdbaaaaedbedbcacdbdbaejdbcdbaecjdbaebdicadbcbadecda
cabaacdbaaaaedbedbcacdbdbaejdbcdbaecjdbaejacadbcbadecda
cabaacdbaaaaedbedbcacdbdbaejdbcdbaecjdbaejicadbcbadecda
cabaacdbaaaaedbedbcacdjbaebddbcdbaecbddbaebdacadbcbadecda
cabaacdbaaaaedbedbcacdjbaebddbcdbaecbddbaebdicadbcbadecda
cabaacdbaaaaedbedbcacdjbaebddbcdbaecbddbaejacadbcbadecda
cabaacdbaaaaedbedbcacdjbaebddbcdbaecbddbaejicadbcbadecda
cabaacdbaaaaedbedbcacdjbaebddbcdbaecjdbaebdacadbcbadecda
cabaacdbaaaaedbedbcacdjbaebddbcdbaecjdbaebdicadbcbadecda
cabaacdbaaaaedbedbcacdjbaebddbcdbaecjdbaejacadbcbadecda
cabaacdbaaaaedbedbcacdjbaebddbcdbaecjdbaejicadbcbadecda
cabaacdbaaaaedbedbcacdjbaejdbcdbaecbddbaebdacadbcbadecda
cabaacdbaaaaedbedbcacdjbaejdbcdbaecbddbaebdicadbcbadecda
cabaacdbaaaaedbedbcacdjbaejdbcdbaecbddbaejacadbcbadecda
cabaacdbaaaaedbedbcacdjbaejdbcdbaecbddbaejicadbcbadecda
cabaacdbaaaaedbedbcacdjbaejdbcdbaecjdbaebdacadbcbadecda
cabaacdbaaaaedbedbcacdjbaejdbcdbaecjdbaebdicadbcbadecda
cabaacdbaaaaedbedbcacdjbaejdbcdbaecjdbaejacadbcbadecda
cabaacdbaaaaedbedbcacdjbaejdbcdbaecjdbaejicadbcbadecda
cabaacdbaaaiedbedbcacdbdbaebddbcdbaecbddbaebdacadbcbadecda
cabaacdbaaaiedbedbcacdbdbaebddbcdbaecbddbaebdicadbcbadecda
cabaacdbaaaiedbedbcacdbdbaebddbcdbaecbddbaejacadbcbadecda
cabaacdbaaaiedbedbcacdbdbaebddbcdbaecbddbaejicadbcbadecda
cabaacdbaaaiedbedbcacdbdbaebddbcdbaecjdbaebdacadbcbadecda
cabaacdbaaaiedbedbcacdbdbaebddbcdbaecjdbaebdicadbcbadecda
cabaacdbaaaiedbedbcacdbdbaebddbcdbaecjdbaejacadbcbadecda
cabaacdbaaaiedbedbcacdbdbaebddbcdbaecjdbaejicadbcbadecda
cabaacdbaaaiedbedbcacdbdbaejdbcdbaecbddbaebdacadbcbadecda
cabaacdbaaaiedbedbcacdbdbaejdbcdbaecbddbaebdicadbcbadecda
cabaacdbaaaiedbedbcacdbdbaejdbcdbaecbddbaejacadbcbadecda
cabaacdbaaaiedbedbcacdbdbaejdbcdbaecbddbaejicadbcbadecda
cabaacdbaaaiedbedbcacdbdbaejdbcdbaecjdbaebdacadbcbadecda
cabaacdbaaaiedbedbcacdbdbaejdbcdbaecjdbaebdicadbcbadecda
cabaacdbaaaiedbedbcacdbdbaejdbcdbaecjdbaejacadbcbadecda
cabaacdbaaaiedbedbcacdbdbaejdbcdbaecjdbaejicadbcbadecda
cabaacdbaaaiedbedbcacdjbaebddbcdbaecbddbaebdacadbcbadecda
cabaacdbaaaiedbedbcacdjbaebddbcdbaecbddbaebdicadbcbadecda
cabaacdbaaaiedbedbcacdjbaebddbcdbaecbddbaejacadbcbadecda
cabaacdbaaaiedbedbcacdjbaebddbcdbaecbddbaejicadbcbadecda
cabaacdbaaaiedbedbcacdjbaebddbcdbaecjdbaebdacadbcbadecda
cabaacdbaaaiedbedbcacdjbaebddbcdbaecjdbaebdicadbcbadecda
cabaacdbaaaiedbedbcacdjbaebddbcdbaecjdbaejacadbcbadecda
cabaacdbaaaiedbedbcacdjbaebddbcdbaecjdbaejicadbcbadecda
cabaacdbaaaiedbedbcacdjbaejdbcdbaecbddbaebdacadbcbadecda
cabaacdbaaaiedbedbcacdjbaejdbcdbaecbddbaebdicadbcbadecda
cabaacdbaaaiedbedbcacdjbaejdbcdbaecbddbaejacadbcbadecda
cabaacdbaaaiedbedbcacdjbaejdbcdbaecbddbaejicadbcbadecda
cabaacdbaaaiedbedbcacdjbaejdbcdbaecjdbaebdacadbcbadecda
cabaacdbaaaiedbedbcacdjbaejdbcdbaecjdbaebdicadbcbadecda
cabaacdbaaaiedbedbcacdjbaejdbcdbaecjdbaejacadbcbadecda
cabaacdbaaaiedbedbcacdjbaejdbcdbaecjdbaejicadbcbadecda
cabaacdbaaiaedbedbcacdbdbaebddbcdbaecbddbaebdacadbcbadecda
cabaacdbaaiaedbedbcacdbdbaebddbcdbaecbddbaebdicadbcbadecda
cabaacdbaaiaedbedbcacdbdbaebddbcdbaecbddbaejacadbcbadecda
cabaacdbaaiaedbedbcacdbdbaebddbcdbaecbddbaejicadbcbadecda
cabaacdbaaiaedbedbcacdbdbaebddbcdbaecjdbaebdacadbcbadecda
cabaacdbaaiaedbedbcacdbdbaebddbcdbaecjdbaebdicadbcbadecda
cabaacdbaaiaedbedbcacdbdbaebddbcdbaecjdbaejacadbcbadecda
cabaacdbaaiaedbedbcacdbdbaebddbcdbaecjdbaejicadbcbadecda
cabaacdbaaiaedbedbcacdbdbaejdbcdbaecbddbaebdacadbcbadecda
cabaacdbaaiaedbedbcacdbdbaejdbcdbaecbddbaebdicadbcbadecda
cabaacdbaaiaedbedbcacdbdbaejdbcdbaecbddbaejacadbcbadecda
cabaacdbaaiaedbedbcacdbdbaejdbcdbaecbddbaejicadbcbadecda
cabaacdbaaiaedbedbcacdbdbaejdbcdbaecjdbaebdacadbcbadecda
cabaacdbaaiaedbedbcacdbdbaejdbcdbaecjdbaebdicadbcbadecda
cabaacdbaaiaedbedbcacdbdbaejdbcdbaecjdbaejacadbcbadecda
cabaacdbaaiaedbedbcacdbdbaejdbcdbaecjdbaejicadbcbadecda
cabaacdbaaiaedbedbcacdjbaebddbcdbaecbddbaebdacadbcbadecda
cabaacdbaaiaedbedbcacdjbaebddbcdbaecbddbaebdicadbcbadecda
cabaacdbaaiaedbedbcacdjbaebddbcdbaecbddbaejacadbcbadecda
cabaacdbaaiaedbedbcacdjbaebddbcdbaecbddbaejicadbcbadecda
cabaacdbaaiaedbedbcacdjbaebddbcdbaecjdbaebdacadbcbadecda
cabaacdbaaiaedbedbcacdjbaebddbcdbaecjdbaebdicadbcbadecda
cabaacdbaaiaedbedbcacdjbaebddbcdbaecjdbaejacadbcbadecda
cabaacdbaaiaedbedbcacdjbaebddbcdbaecjdbaejicadbcbadecda
cabaacdbaaiaedbedbcacdjbaejdbcdbaecbddbaebdacadbcbadecda
cabaacdbaaiaedbedbcacdjbaejdbcdbaecbddbaebdicadbcbadecda
cabaacdbaaiaedbedbcacdjbaejdbcdbaecbddbaejacadbcbadecda
cabaacdbaaiaedbedbcacdjbaejdbcdbaecbddbaejicadbcbadecda
cabaacdbaaiaedbedbcacdjbaejdbcdbaecjdbaebdacadbcbadecda
cabaacdbaaiaedbedbcacdjbaejdbcdbaecjdbaebdicadbcbadecda
cabaacdbaaiaedbedbcacdjbaejdbcdbaecjdbaejacadbcbadecda
cabaacdbaaiaedbedbcacdjbaejdbcdbaecjdbaejicadbcbadecda
cabaacdbaaiiedbedbcacdbdbaebddbcdbaecbddbaebdacadbcbadecda
cabaacdbaaiiedbedbcacdbdbaebddbcdbaecbddbaebdicadbcbadecda
cabaacdbaaiiedbedbcacdbdbaebddbcdbaecbddbaejacadbcbadecda
cabaacdbaaiiedbedbcacdbdbaebddbcdbaecbddbaejicadbcbadecda
Code: Select all
1
a 0
000
3
a 0
b 01
c 10
00110001
8
a 101
b 1
c 10
d 1001
e 1010
f 101010
g 101011
h 1010101
010101010101000101001010111010100101011010101010101011010101010101010110101010101011010101010101101
0
Code: Select all
Case #1
aaa
aa
aa
Case #2
abcab
abcb
bcab
bcb
Case #3
Code: Select all
code deleted after ac
Accepted program gives :Jan wrote:You can try the following input...
Input:Output:Code: Select all
3 a 0 b 01 c 10 00110001 0
Hope it works.Code: Select all
Case #1 abcab
Code: Select all
#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<cmath>
#include<vector>
#include<cstring>
#include<cctype>
#include<queue>
#include<set>
#include<deque>
#include<string>
#include<cassert>
#include<algorithm>
#include<map>
#include<functional>
using namespace std;
#define SIZE 105
#define LIMIT 1000
#define INF 2000000000
#define EPS 1e-7
#define MAX(a,b) (((a) > (b)) ? (a) : (b))
#define MIN(a,b) (((a) < (b)) ? (a) : (b))
#define ABS(a) ((a)>0 ? (a) : -(a))
long size;
char dic[27][SIZE];
vector<char> avail;
char input[SIZE];
vector<string> mem[SIZE];
bool mask[SIZE];
bool takeinput();
vector<int> match(int, char[],int );
vector<string> recur(int start);
int main()
{
int i,kase=0;
vector<string> res;
while(takeinput())
{
memset(mask,0,sizeof mask);
for(i=strlen(input);i>=0;i--) mem[i].clear();
mask[strlen(input)]=1;
mem[strlen(input)].push_back("");
res=recur(0);
cout<<"Case #"<<++kase<<endl;
for(i=0;i<res.size() && i<100;i++)
cout<<res[i]<<endl;
cout<<endl;
}
return 0;
}
vector<string> recur(int start)
{
int i,j,k;
vector<int> tm;
vector<string> temp;
vector<string>::iterator last;
if(!mask[start])
{
mask[start]=1;
for(i=0;i<avail.size();i++)
{
tm=match(start,dic[avail[i]-'a'],0);
for(j=0;j<tm.size();j++)
{
temp=recur(tm[j]);
for(k=0;k<temp.size();k++)
{
mem[start].push_back(avail[i]+temp[k]);
}
sort(mem[start].begin(),mem[start].end());
last=unique(mem[start].begin(),mem[start].end());
mem[start].erase(last,mem[start].end());
if(mem[start].size()>LIMIT)
mem[start].erase(mem[start].begin()+LIMIT,mem[start].end());
}
}
}
return mem[start];
}
vector<int> match(int start,char enc[],int index)
{
vector<int> vec,temp;
if(index==strlen(enc))
{
vec.push_back(start);
return vec;
}
if(start==strlen(input))
{
vec.clear();
return vec;
}
if(input[start]==enc[index])
{
temp=match(start+1,enc,index+1);
vec.insert(vec.end(),temp.begin(),temp.end());
}
if(input[start]=='0')
{
temp=match(start+1,enc,index);
vec.insert(vec.end(),temp.begin(),temp.end());
}
return vec;
}
bool takeinput()
{
long i;
char real[10];
cin>>size;
if(size==0)
return false;
avail.resize(size);
for(i=0;i<size;i++)
{
scanf("%s",&real);
avail[i]=real[0];
scanf(" %s",&dic[real[0]-'a']);
}
sort(avail.begin(),avail.end());
cin>>input;
return 1;
}