Metal Steak

Hard to eat

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  0 Posts :: 79 Stories :: 0 Comments :: 0 Trackbacks

公告

aaaaaaaaaaaa

常用链接

留言簿(1)

我参与的团队

搜索

  •  

最新评论

#include <iostream>
using namespace std;

void
__lcs__( 
int sigmaLength )
{
    
int seq[10001= { 0 };
    
forint i = 1; i <= sigmaLength; i++ )
        cin 
>> seq[i];
    
int
    f[
10001= { 0 }, ans = 0, lcs_start = 1, lcs_end = 1, t_start = 1, negativeflag = true;

    
if( seq[1>= 0 )
        negativeflag 
= false;
    f[
1= seq[1];
    ans 
= f[1];
    
forint i = 2; i <= sigmaLength ; i++ )
    {
        
if( seq[i] >= 0 )
            negativeflag 
= false;
        
if( f[i - 1>= 0 )
            f[i] 
= f[i - 1+ seq[i];
        
else
        {
            f[i] 
= seq[i];             //开始新的序列的搜索
            t_start = i;               //记录下新的起始点
        }
        
if( ans < f[i] )
        {
            ans 
= f[i];                //更新和
            lcs_start = t_start;    //更新起始点和重点
            lcs_end = i;
        }
    }

    
if( sigmaLength == 1 )
    {
        
if( seq[1>= 0 )
            cout 
<< seq[1<< " ";
        
else
            cout 
<< 0 << " ";                   //注意。。还有这个东西
        cout << seq[1<< " " << seq[1<< endl;
        
return;
    }
    
if( negativeflag )
    {
        cout 
<< 0 << " " << seq[1<< " " << seq[sigmaLength] << endl;
        
return;
    }
    
else
    {
        cout 
<< ans << " " << seq[lcs_start] << " " << seq[lcs_end] << endl;
        
return;
    }
}

void
__read__()
{
    
int k;
    
while( cin >> k )
        
if( k != 0 )
            __lcs__( k );
        
else
            
return;
}

int
main()
{
    __read__();

    
return 0;
}

posted on 2009-09-15 21:00 mad4alcohol 阅读(260) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航:   博客园   博客园最新博文   博问   管理