Бодолт илгээх | Бүх бодолтууд | Шилдэг бодолтууд | Жагсаалт руу буцах |
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]); } |