随笔-141  评论-9  文章-3  trackbacks-0
/*
ID: lorelei3
TASK: prefix
LANG: C++
*/


#include 
<fstream>
#include 
<string>

using namespace std;

const int MAXL = 200;
const int MAXN = 100000;

string    prim[MAXL+1];
int        d[MAXL+1];
int        m;
int        ans;
string    s;

int main(){
    
int i,j,k, length;
    
string t;
    ifstream 
in("prefix.in");
    ofstream 
out("prefix.out");

    
for(i=0; ;i++){
        
in>>t;
        
if(t == "."break;
        prim[i]
=t;
        d[i]
=t.length();
    }

    m 
= i; 

    
while(in>>t)
        s.append(t);
    length 
= s.length();

    
for(i=0; i<length; ++i){

        
for(j=0; j<m; ++j){
            
if(i+d[j]>length) continue;
            
else{
                
bool f = false;
                
for(k=0; k<d[j]; ++k)
                    
if(s[i+k] != prim[j][k]){
                        f 
= true;
                        
break;
                    }

                
if(!f)    ans = ans>i+d[j] ? ans : i+d[j];

            }

        }

        
if(i+1>ans)    break;
    }


    
out<<ans<<endl;

    
return 0;
}


posted on 2010-12-21 10:16 小阮 阅读(477) 评论(1)  编辑 收藏 引用 所属分类: USACO

评论:
# re: USACO 2.3.1 The Longest Prefix [未登录] 2013-07-12 00:49 | z
发现一个错误,对于测试实例
AE ABC CDEF .
ABCDEFG
错误
正确答案是3  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理