记录编号 84440 评测结果 AAAAAAAAAA
题目名称 [NOIP 2010冲刺十三]迷之阶梯 最终得分 100
用户昵称 Gravatar1azyReaper 是否通过 通过
代码语言 C++ 运行时间 0.076 s
提交时间 2013-12-13 20:02:30 内存使用 40.58 MiB
显示代码纯文本
#include <fstream>
#include <cstdio>
#include <cstdlib>
using namespace std;
/*
	Write:XPK
	Date:13-12-13
	Lang:C++
	Thank:Truth.Cirno
*/
ifstream fin("ladder.in");
ofstream fout("ladder.out");
int a[210],f[40010][210];
bool t[41010][210];
int main()
{
	int i,j,k,n,c=0,ct=0;
	fin>>n;
	if(n==1){
		fout<<"0"<<endl;
		return 0;
	}
	for(i=1;i<=n;i++)
		fin>>a[i];
	f[0][1]=1;
	t[0][1]=true;
	for(i=1;;i++){
		ct=c;
		for(j=1;j<=n;j++){
			for(k=1;k<j;k++){
				if(t[i-1][k]){
					if(a[j]-a[k]<=(1<<(f[i-1][k]-1))){
						f[i][j]=1;
						if (!t[i][j]){
							t[i][j]=true;
							c++;
						}
					}
				}
			}
			if(t[i-1][j+1]){
				f[i][j]=max(f[i][j],f[i-1][j+1]+1);
				if(!t[i][j]){
					t[i][j]=true;
					c++;
				}
			}
		}
		if(t[i][n]){
			fout<<i<<endl;
			break;
		}
		if (c==ct||i>=40000){
			fout<<"-1"<<endl;
			break;
		}
	}
	fin.close();
	fout.close();
	return 0;
}