Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

RGB7603 - Супер жаал саад тойрон

Супер жаал 3 янзаар урагшилж чаддаг. Дараагийн гишгүүрт очихоос гадна 1 болон 2 гишгүүр алгасаж чадна. Замд нь нийтдээ k ширхэг цөмөрсөн шат байгаа бол хичнээн ялгаатай маршрутаар n-р гишгүүрт хүрэх вэ. Цөмөрсөн шатны дугаар өсөх эрэмбээр өгөгдөнө.

Жич : Надад ганган бодолт байгаа. Илүү ганган бодсон нь gipsymn@yahoo.com хаягаар бодолтоо илгээнэ үү.

Input

Эхний мөрөн шатны гишгүүрийн тоо. 3<n<100.

Хоёр дахь мөрөнд цөмөрсөн гишгүүрийн тоо. k<n. 

Гурав дахь мөрөнд цөмөрсөн гишгүүрийн дугаарууд зайгаар тусгаарлагдан өгөгдөнө.

Output

Маршрутын тоо.

Example

Input:
10
3
4 7 8
Output:
10


Нэмсэн:Bataa
Огноо:2013-01-24
Хугацааны хязгаарлалт:1s
Эх кодын хэмжээний хязгаарлалт:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Програмчлалын хэлүүд:ADA95 ASM32 BASH BF C NCSHARP CSHARP C++ 4.3.2 CPP C99 CLPS LISP sbcl LISP clisp D ERL FORTRAN HASK ICON ICK JAVA JS-RHINO JULIA LUA NEM NICE OCAML PAS-GPC PAS-FPC PERL PHP PIKE PRLG-swi PYTHON PYPY3 PYTHON3 RUBY SCALA SCM guile ST TCL WHITESPACE

hide comments
2020-11-07 02:41:50
#include <cstdio>
int main(){
long long a[101];
long long dp[101] = {0};
long long n , i ,s,k;
scanf("%lld%lld" , &n , &s);
for(i = 1 ; i <= s ; i++){
scanf("%lld" , &k);
dp[k] = -1;}
dp[0] = 1;
if(dp[1]!=-1) dp[1]=1;
else dp[1]=0;
if(dp[2]!=-1) dp[2]=dp[1]+dp[0];
else dp[2]=0;
for(int i = 3 ; i <= n ; i++){
if(dp[i]!=-1){
dp[i]=dp[i-1]+dp[i-2]+dp[i-3];
}else{
dp[i]=0;
}
}
printf("%lld" , dp[n]);
}
2020-10-21 11:45:33





























































































































2020-07-02 06:22:03
#include<bits/stdc++.h>
main(){
long long n,a[100]={0},k,x;
scanf ("%lld%lld",&n,&k);
for(int i=4; i<=k; i++){
scanf("%lld",&x);
a[x=1];
}
if(a[1]==1)a[1]=0;
else a[1]=1;
if(a[2]==1)a[2]=0;
else a[2]=a[1]+1;
if(a[3]==1)a[3]=0;
else a[3]=a[2]+a[1]+1;
for(int i=4; i<=n; i++){
if(a[i]==1)a[i]=0;
else a[i]=a[i-3]+a[i-2]+a[i-1];
}

printf("%d",a[n]);
}
hudal
2020-07-01 03:53:18
















































































































































































































































2020-07-01 03:47:23
sain uu
2020-07-01 03:34:51














































































































































































































































































2020-06-11 03:55:42



















































































































































2020-01-08 08:59:33
I SERVE SOVIET UNION
2020-01-08 08:59:20
comment huulahaa boli
2019-11-03 06:25:40
#include <cstdio>

int main(){
int a[101];
long long dp[101] = {0};
int n , i ,k;
scanf("%d%d" , &n , &k);
for(i = 1 ; i <= k ; i++){
scanf("%d" , &a[i]);
dp[a[i]] = -1;
}
dp[0] = 1;
if(dp[1] == 0)dp[1] = 1;
if(dp[2] == 0){
if(dp[1] != -1)dp[2] = 2;
else dp[2] = 1;
}
for(i = 3 ; i <= n ; i++){
if(dp[i] != -1){
if(dp[i - 1] != -1)dp[i] += dp[i - 1];
if(dp[i - 2] != -1)dp[i] += dp[i - 2];
if(dp[i - 3] != -1)dp[i] += dp[i - 3];
}
}
printf("%lld" , dp[n]);
}
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.