记录编号 84454 评测结果 AAAAAAAAAA
题目名称 [NOIP 2010冲刺十三]迷之阶梯 最终得分 100
用户昵称 Gravatarmikumikumi 是否通过 通过
代码语言 C++ 运行时间 0.004 s
提交时间 2013-12-13 20:36:35 内存使用 0.30 MiB
显示代码纯文本
    #include<fstream>
    using namespace std;	
	ifstream input("ladder.in");
    ofstream output("ladder.out");
    int n,ni[250]={0},b[250]={0};
    int main()
    {
    input>>n;
    for(int i=0;i<n;i++)
    {
    input>>ni[i];
    b[i]=10000;
    }
    b[0]=0;
    for(int i=1;i<n;i++)
    {
    for(int j=i-1;j>=0;j--)
    {
    if(j==i-1&&ni[j]==ni[i]-1)
    {
    b[i]=b[j]+1;
    }
    else
    {
    int k=1,m=0;
    while(k<ni[i]-ni[j])
    {
    k=k*2;
    m++;
    }
    if(m<=i-j-1&&b[i]>b[j+m]+m+1)
    {
    b[i]=b[j+m]+m+1;
    }
    }
    }
    if(b[i]==10000)
    {
    output<<-1;
    return 0;
    }
    }
    if(b[n-1]==10000)
    output<<-1;
    else
    output<<b[n-1];
    }