比赛 |
20101117 |
评测结果 |
WWWWWWWWWW |
题目名称 |
拯救 |
最终得分 |
0 |
用户昵称 |
wangwangdog |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2010-11-17 11:26:52 |
显示代码纯文本
#include<stdio.h>
long i,n,a[1001],da[1001],db[1001],dca[1001],dcb[1001];
char cc;
int main()
{
FILE *fin,*fout;
fin=fopen("savey.in","rb");
fout=fopen("savey.out","wb");
fscanf(fin,"%ld\n",&n);
for(i=1;i<=n;i++)
{
fscanf(fin,"%ld",&a[i]);
}
if(n==1)
{
if(a[1]==0)fprintf(fout,"0");
if(a[1]==1)fprintf(fout,"1");
}
if(n==2)
{
if(a[1]==1&&a[2]==1)fprintf(fout,"2");
if(a[1]==1&&a[2]==0)fprintf(fout,"1");
if(a[1]==0&&a[2]==1)fprintf(fout,"3");
if(a[1]==0&&a[2]==0)fprintf(fout,"0");
}
if(n!=1&&n!=2)
{
if(a[1]==1&&a[2]==1&&a[3]==1){da[3]=5;db[3]=2;}
if(a[1]==1&&a[2]==1&&a[3]==0){da[3]=2;db[3]=5;}
if(a[1]==1&&a[2]==0&&a[3]==1){da[3]=6;db[3]=1;}
if(a[1]==1&&a[2]==0&&a[3]==0){da[3]=1;db[3]=6;}
if(a[1]==0&&a[2]==1&&a[3]==1){da[3]=4;db[3]=3;}
if(a[1]==0&&a[2]==1&&a[3]==0){da[3]=3;db[3]=4;}
if(a[1]==0&&a[2]==0&&a[3]==1){da[3]=5;db[3]=0;}
if(a[1]==0&&a[2]==0&&a[3]==0){da[3]=0;db[3]=7;}
if(n==3)
{
fprintf(fout,"%ld",da[3]);
}
if(n!=3)
{
dca[3]=5;
dcb[3]=7;
for(i=4;i<=n;i++)
{
if(a[i]==0)
{
da[i]=da[i-1];
db[i]=db[i-1]+1+dca[i-1];
dca[i]=dca[i-1]+1+dcb[i-1];
dcb[i]=dca[i-1]+1+dcb[i-1];
}
if(a[i]==1)
{
db[i]=da[i-1];
da[i]=db[i-1]+1+dca[i-1];
dca[i]=dca[i-1]+dcb[i-1]+1;
dcb[i]=dca[i-1]+dcb[i-1]+1;
}
}
fprintf(fout,"%ld",da[n]);
}
}
fclose(fin);
fclose(fout);
return 0;
}