F.A.Q
Hand In Hand
Online Acmers
Problem Archive
Realtime Judge Status
Authors Ranklist
 
     C/C++/Java Exams     
ACM Steps
Go to Job
Contest LiveCast
ICPC@China
Best Coder beta
VIP | STD Contests
    DIY | Web-DIY beta
Author ID 
Password 
 Register new ID

View Compilation Error

0_0_20611981_25393.cpp:13:6: error: 'vn' does not name a type
      vn[26];int vis[1005]; bool isok(int pos,int i){    int j,t=S[pos]-'a',len=vn[t][i].len;    if(len==-1) return 1;    if(pos+len+1>=tot) return 0;    if(vn[t][i].endc!=S[pos+len+1]) return 0;    string ss=S.substr(pos+1,len);    sort(ss.begin(),ss.end());    if(ss==vn[t][i].s) return 1;    return 0;}void solve(){    int i,j,t;    vector<int>vs[1005];    memset(vis,0,sizeof(vis));    vis[0]=1;    for(i=0; i<tot; i++)    {        if(!vis[i]) continue ;         t=S[i]-'a';        for(j=0; j<vn[t].size(); j++)         {            if(isok(i,j))            {                int next=i+vn[t][j].len+2;                if(vis[next]==0)                {                    if(vis[i]==1)                    {                        vis[next]=1;                        vs[next]=vs[i];                        vs[next].push_back(vn[t][j].id);                    }                    else vis[next]=2;                }                else vis[next]=2;            }        }    }    if(vis[tot]==0) printf("impossible\n");    else if(vis[tot]==2) printf("ambiguous\n");    else    {        for(i=0; i<vs[tot].size()-1; i++)        {            printf("%s ",res[vs[tot][i]]);        }        printf("%s\n",res[vs[tot][i]]);    }}int main(){    int i,j,t;    scanf("%d",&t);    while(t--)    {        for(i=0; i<26; i++) vn[i].clear();        scanf("%s",s);        S=s;        tot=S.length();        scanf("%d",&cnt);        for(i=1; i<=cnt; i++)        {            scanf("%s",res[i]);            cur=res[i];            int len=cur.length();            tt.id=i;            if(len==1)            {                tt.len=-1;                tt.s="";                tt.endc=res[i][0];                vn[res[i][0]-'a'].push_back(tt);            }            else            {                tt.len=len-2;                tt.s=cur.substr(1,len-2);                tt.endc=res[i][len-1];                sort(tt.s.begin(),tt.s.end());                vn[res[i][0]-'a'].push_back(tt);            }        }        solve();    }    return 0;}
      ^
0_0_20611981_25393.cpp: In function 'bool isok(int, int)':
0_0_20611981_25393.cpp:13:65: error: 'S' was not declared in this scope
      vn[26];int vis[1005]; bool isok(int pos,int i){    int j,t=S[pos]-'a',len=vn[t][i].len;    if(len==-1) return 1;    if(pos+len+1>=tot) return 0;    if(vn[t][i].endc!=S[pos+len+1]) return 0;    string ss=S.substr(pos+1,len);    sort(ss.begin(),ss.end());    if(ss==vn[t][i].s) return 1;    return 0;}void solve(){    int i,j,t;    vector<int>vs[1005];    memset(vis,0,sizeof(vis));    vis[0]=1;    for(i=0; i<tot; i++)    {        if(!vis[i]) continue ;         t=S[i]-'a';        for(j=0; j<vn[t].size(); j++)         {            if(isok(i,j))            {                int next=i+vn[t][j].len+2;                if(vis[next]==0)                {                    if(vis[i]==1)                    {                        vis[next]=1;                        vs[next]=vs[i];                        vs[next].push_back(vn[t][j].id);                    }                    else vis[next]=2;                }                else vis[next]=2;            }        }    }    if(vis[tot]==0) printf("impossible\n");    else if(vis[tot]==2) printf("ambiguous\n");    else    {        for(i=0; i<vs[tot].size()-1; i++)        {            printf("%s ",res[vs[tot][i]]);        }        printf("%s\n",res[vs[tot][i]]);    }}int main(){    int i,j,t;    scanf("%d",&t);    while(t--)    {        for(i=0; i<26; i++) vn[i].clear();        scanf("%s",s);        S=s;        tot=S.length();        scanf("%d",&cnt);        for(i=1; i<=cnt; i++)        {            scanf("%s",res[i]);            cur=res[i];            int len=cur.length();            tt.id=i;            if(len==1)            {                tt.len=-1;                tt.s="";                tt.endc=res[i][0];                vn[res[i][0]-'a'].push_back(tt);            }            else            {                tt.len=len-2;                tt.s=cur.substr(1,len-2);                tt.endc=res[i][len-1];                sort(tt.s.begin(),tt.s.end());                vn[res[i][0]-'a'].push_back(tt);            }        }        solve();    }    return 0;}
                                                                 ^
0_0_20611981_25393.cpp:13:100: error: 'len' was not declared in this scope
      vn[26];int vis[1005]; bool isok(int pos,int i){    int j,t=S[pos]-'a',len=vn[t][i].len;    if(len==-1) return 1;    if(pos+len+1>=tot) return 0;    if(vn[t][i].endc!=S[pos+len+1]) return 0;    string ss=S.substr(pos+1,len);    sort(ss.begin(),ss.end());    if(ss==vn[t][i].s) return 1;    return 0;}void solve(){    int i,j,t;    vector<int>vs[1005];    memset(vis,0,sizeof(vis));    vis[0]=1;    for(i=0; i<tot; i++)    {        if(!vis[i]) continue ;         t=S[i]-'a';        for(j=0; j<vn[t].size(); j++)         {            if(isok(i,j))            {                int next=i+vn[t][j].len+2;                if(vis[next]==0)                {                    if(vis[i]==1)                    {                        vis[next]=1;                        vs[next]=vs[i];                        vs[next].push_back(vn[t][j].id);                    }                    else vis[next]=2;                }                else vis[next]=2;            }        }    }    if(vis[tot]==0) printf("impossible\n");    else if(vis[tot]==2) printf("ambiguous\n");    else    {        for(i=0; i<vs[tot].size()-1; i++)        {            printf("%s ",res[vs[tot][i]]);        }        printf("%s\n",res[vs[tot][i]]);    }}int main(){    int i,j,t;    scanf("%d",&t);    while(t--)    {        for(i=0; i<26; i++) vn[i].clear();        scanf("%s",s);        S=s;        tot=S.length();        scanf("%d",&cnt);        for(i=1; i<=cnt; i++)        {            scanf("%s",res[i]);            cur=res[i];            int len=cur.length();            tt.id=i;            if(len==1)            {                tt.len=-1;                tt.s="";                tt.endc=res[i][0];                vn[res[i][0]-'a'].push_back(tt);            }            else            {                tt.len=len-2;                tt.s=cur.substr(1,len-2);                tt.endc=res[i][len-1];                sort(tt.s.begin(),tt.s.end());                vn[res[i][0]-'a'].push_back(tt);            }        }        solve();    }    return 0;}
                                                                                                    ^
0_0_20611981_25393.cpp:13:129: error: 'len' was not declared in this scope
      vn[26];int vis[1005]; bool isok(int pos,int i){    int j,t=S[pos]-'a',len=vn[t][i].len;    if(len==-1) return 1;    if(pos+len+1>=tot) return 0;    if(vn[t][i].endc!=S[pos+len+1]) return 0;    string ss=S.substr(pos+1,len);    sort(ss.begin(),ss.end());    if(ss==vn[t][i].s) return 1;    return 0;}void solve(){    int i,j,t;    vector<int>vs[1005];    memset(vis,0,sizeof(vis));    vis[0]=1;    for(i=0; i<tot; i++)    {        if(!vis[i]) continue ;         t=S[i]-'a';        for(j=0; j<vn[t].size(); j++)         {            if(isok(i,j))            {                int next=i+vn[t][j].len+2;                if(vis[next]==0)                {                    if(vis[i]==1)                    {                        vis[next]=1;                        vs[next]=vs[i];                        vs[next].push_back(vn[t][j].id);                    }                    else vis[next]=2;                }                else vis[next]=2;            }        }    }    if(vis[tot]==0) printf("impossible\n");    else if(vis[tot]==2) printf("ambiguous\n");    else    {        for(i=0; i<vs[tot].size()-1; i++)        {            printf("%s ",res[vs[tot][i]]);        }        printf("%s\n",res[vs[tot][i]]);    }}int main(){    int i,j,t;    scanf("%d",&t);    while(t--)    {        for(i=0; i<26; i++) vn[i].clear();        scanf("%s",s);        S=s;        tot=S.length();        scanf("%d",&cnt);        for(i=1; i<=cnt; i++)        {            scanf("%s",res[i]);            cur=res[i];            int len=cur.length();            tt.id=i;            if(len==1)            {                tt.len=-1;                tt.s="";                tt.endc=res[i][0];                vn[res[i][0]-'a'].push_back(tt);            }            else            {                tt.len=len-2;                tt.s=cur.substr(1,len-2);                tt.endc=res[i][len-1];                sort(tt.s.begin(),tt.s.end());                vn[res[i][0]-'a'].push_back(tt);            }        }        solve();    }    return 0;}
                                                                                                                                 ^
0_0_20611981_25393.cpp:13:136: error: 'tot' was not declared in this scope
      vn[26];int vis[1005]; bool isok(int pos,int i){    int j,t=S[pos]-'a',len=vn[t][i].len;    if(len==-1) return 1;    if(pos+len+1>=tot) return 0;    if(vn[t][i].endc!=S[pos+len+1]) return 0;    string ss=S.substr(pos+1,len);    sort(ss.begin(),ss.end());    if(ss==vn[t][i].s) return 1;    return 0;}void solve(){    int i,j,t;    vector<int>vs[1005];    memset(vis,0,sizeof(vis));    vis[0]=1;    for(i=0; i<tot; i++)    {        if(!vis[i]) continue ;         t=S[i]-'a';        for(j=0; j<vn[t].size(); j++)         {            if(isok(i,j))            {                int next=i+vn[t][j].len+2;                if(vis[next]==0)                {                    if(vis[i]==1)                    {                        vis[next]=1;                        vs[next]=vs[i];                        vs[next].push_back(vn[t][j].id);                    }                    else vis[next]=2;                }                else vis[next]=2;            }        }    }    if(vis[tot]==0) printf("impossible\n");    else if(vis[tot]==2) printf("ambiguous\n");    else    {        for(i=0; i<vs[tot].size()-1; i++)        {            printf("%s ",res[vs[tot][i]]);        }        printf("%s\n",res[vs[tot][i]]);    }}int main(){    int i,j,t;    scanf("%d",&t);    while(t--)    {        for(i=0; i<26; i++) vn[i].clear();        scanf("%s",s);      


Hangzhou Dianzi University Online Judge 3.0
Copyright © 2005-2024 HDU ACM Team. All Rights Reserved.
Designer & Developer : Wang Rongtao LinLe GaoJie GanLu
Total 0.000000(s) query 1, Server time : 2024-11-27 00:44:16, Gzip enabled