比赛 |
20110414 |
评测结果 |
AATTTTTTTTTWTTT |
题目名称 |
奶牛的跳格子游戏 |
最终得分 |
13 |
用户昵称 |
magic |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2011-04-14 09:21:26 |
显示代码纯文本
#include<iostream>
#include<fstream>
#include<cstdio>
#define maxnode 500002
using namespace std;
int hop[maxnode];
bool flag[maxnode];
int m,n,k,i,a;
long long ans,maxer;
void dfs(int p);
void dfs(int p)
{
int w;
if (p==2*n)
{
if (maxer>ans)
{
ans=maxer;
}
}
for (w=1;w<=k;w++)
{
if (p+w<=n)
{
maxer+=hop[p+w];
flag[p+w]=1;
flag[2*n-p-w]=1;
dfs(p+w);
maxer-=hop[p+w];
flag[2*n-p-w]=0;
flag[p+w]=0;
}
else
{
if ((flag[p+w-1])&&(!flag[p+w]))
{
maxer+=hop[p+w];
dfs(p+w);
maxer-=hop[p+w];
}
}
}
}
int main()
{
freopen("hop.in","r",stdin);
freopen("hop.out","w",stdout);
scanf("%d%d",&n,&k);
memset(hop,0,sizeof(hop));
memset(flag,0,sizeof(flag));
for (i=1;i<=n;i++)
{
scanf("%d",&a);
hop[i]=a;
hop[n*2-i]=a;
}
dfs(0);
printf("%d",ans);
return 0;
}