비디오 게임 트랜지스터 는 매우 흥미로운 능력 시스템을 갖추고 있습니다. 16 개의 다른 슬롯에서 사용할 수있는 16 개의 "기능"을 수집합니다. 흥미로운 점은 3 가지 유형의 슬롯이 있으며 사용하는 슬롯에 따라 모든 기능이 다르게 작동한다는 것입니다.
- 있다 4 개 수동 슬롯 .
- 있다 4 개 활성 슬롯 .
- 각 활성 슬롯 에는 2 개의 업그레이드 슬롯이 있습니다.
우리는 얼마나 많은 다른 기술을 제공하는지 알고 싶습니다.
그러나 일부 조합은 동일합니다. 특히, 각 슬롯 그룹 내에서 기능의 특정 위치는 중요하지 않습니다. 반면에, 업그레이드 슬롯에있는 기능의 효과는 않는 부모 활성 슬롯에 사용되는 특정 기능에 따라 달라집니다.
따라서 16 진수를 사용하여 함수를 나타내면 다음 조합은 모두 동일합니다.
Passive Slots: 0 1 2 3
Active Slots: 4 5 6 7
Upgrade Slots: 8 9 A B C D E F
Passive Slots: 2 0 1 3 # Permutation of passive slots.
Active Slots: 4 5 6 7
Upgrade Slots: 8 9 A B C D E F
Passive Slots: 0 1 2 3
Active Slots: 5 6 4 7 # Permutation of active slots together
Upgrade Slots: A B C D 8 9 E F # with their upgrade slots.
Passive Slots: 0 1 2 3
Active Slots: 4 5 6 7
Upgrade Slots: 8 9 B A C D F E # Permutation within upgrade slots.
이러한 재배치의 조합뿐만 아니라. 세 번째 경우에는 업그레이드 슬롯이 활성 슬롯과 함께 교환되어 동일한 전체 효과를 유지합니다.
한편, 다음 조합은 위의 세트와 모두 다릅니다.
Passive Slots: 4 5 6 7 # Passive slots swapped
Active Slots: 0 1 2 3 # with active slots.
Upgrade Slots: 8 9 A B C D E F
Passive Slots: 0 1 2 3
Active Slots: 5 4 6 7 # Permutation of active slots without
Upgrade Slots: 8 9 A B C D E F # changing upgrade slots.
Passive Slots: 0 1 2 3
Active Slots: 4 5 6 7
Upgrade Slots: 8 A 9 B C D E F # Permutation between different upgrade slots.
모든 기능이 사용된다고 가정하면 2,270,268,000 개의 가능한 (기능적으로 구별되는) 조합을 제공하는 내 카운트로는.
처리 할 기능이 16 개 미만인 경우 일부 슬롯이 비어 있습니다. 그러나 상위 활성 슬롯이 비어 있으면 업그레이드 슬롯에 기능을 배치 할 수 없습니다.
도전
보유하고있는 기능 수에 따라 가능한 구성 수를 결정해야합니다. 또한, 사소한 하드 코딩 솔루션을 방지하기 위해 슬롯 수를 가변적으로 지정하여 문제를 약간 일반화합니다.
두 개의 양의 정수를 주어진 프로그램이나 함수를 작성 M ≥ 1
하고 1 ≤ N ≤ 4M
정확하게 가정 할 수있다 (기능상 구별) 스킬 세트 수, 결정 N
의 가능한 많은로 채우기 위해 사용되는 다른 기능을 M
, 수동 M
활성 및 2M
슬롯 업그레이드.
STDIN (또는 가장 가까운 대안), 명령 행 인수 또는 함수 인수를 통해 입력을 받고 STDOUT (또는 가장 가까운 대안), 함수 리턴 값 또는 함수 (out) 매개 변수를 통해 결과를 출력하는 프로그램 또는 함수를 작성할 수 있습니다.
코드는 M = 8
합리적인 데스크톱 시스템에서 1 분 이내에 포함하여 모든 입력을 처리 할 수 있어야합니다 . 이것에는 약간의 여유가 있지만 무차별 대입 솔루션을 배제해야합니다. 원칙적으로 이러한 입력을 1 초 이내에 해결하는 것은 문제가되지 않습니다.
이것은 코드 골프이며, 가장 짧은 대답 (바이트)이 이깁니다.
테스트 사례
각 테스트 케이스는 형식 M N => Result
입니다.
1 1 => 2
1 2 => 4
1 3 => 9
1 4 => 12
2 1 => 2
2 2 => 6
2 3 => 21
2 4 => 78
2 5 => 270
2 6 => 810
2 7 => 1890
2 8 => 2520
3 1 => 2
3 2 => 6
3 3 => 23
3 4 => 98
3 5 => 460
3 6 => 2210
3 7 => 10290
3 8 => 44520
3 9 => 168840
3 10 => 529200
3 11 => 1247400
3 12 => 1663200
4 1 => 2
4 2 => 6
4 3 => 23
4 4 => 100
4 5 => 490
4 6 => 2630
4 7 => 14875
4 8 => 86030
4 9 => 490140
4 10 => 2652300
4 11 => 13236300
4 12 => 59043600
4 13 => 227026800
4 14 => 718918200
4 15 => 1702701000
4 16 => 2270268000
5 1 => 2
5 2 => 6
5 3 => 23
5 4 => 100
5 5 => 492
5 6 => 2672
5 7 => 15694
5 8 => 98406
5 9 => 644868
5 10 => 4306932
5 11 => 28544670
5 12 => 182702520
5 13 => 1101620520
5 14 => 6122156040
5 15 => 30739428720
5 16 => 136670133600
5 17 => 524885961600
5 18 => 1667284819200
5 19 => 3959801445600
5 20 => 5279735260800
6 1 => 2
6 2 => 6
6 3 => 23
6 4 => 100
6 5 => 492
6 6 => 2674
6 7 => 15750
6 8 => 99862
6 9 => 674016
6 10 => 4787412
6 11 => 35304654
6 12 => 265314588
6 13 => 1989295308
6 14 => 14559228684
6 15 => 101830348620
6 16 => 667943115840
6 17 => 4042651092480
6 18 => 22264427465280
6 19 => 110258471363040
6 20 => 484855688116800
6 21 => 1854067032417600
6 22 => 5894824418683200
6 23 => 14025616720315200
6 24 => 18700822293753600
7 1 => 2
7 2 => 6
7 3 => 23
7 4 => 100
7 5 => 492
7 6 => 2674
7 7 => 15752
7 8 => 99934
7 9 => 676428
7 10 => 4849212
7 11 => 36601554
7 12 => 288486132
7 13 => 2349550632
7 14 => 19504692636
7 15 => 162272450340
7 16 => 1328431104000
7 17 => 10507447510560
7 18 => 78942848624640
7 19 => 554967220167360
7 20 => 3604592589998400
7 21 => 21411337810262400
7 22 => 115428212139240000
7 23 => 561247297649438400
7 24 => 2439121536313862400
7 25 => 9283622495827680000
7 26 => 29520583763711040000
7 27 => 70328449554723360000
7 28 => 93771266072964480000
8 1 => 2
8 2 => 6
8 3 => 23
8 4 => 100
8 5 => 492
8 6 => 2674
8 7 => 15752
8 8 => 99936
8 9 => 676518
8 10 => 4852992
8 11 => 36722169
8 12 => 291621462
8 13 => 2418755196
8 14 => 20834571186
8 15 => 184894557705
8 16 => 1672561326150
8 17 => 15217247948760
8 18 => 137122338089880
8 19 => 1204392465876600
8 20 => 10153538495100000
8 21 => 81007229522419200
8 22 => 604136189949692400
8 23 => 4168645459350372000
8 24 => 26403795950145213600
8 25 => 152700324078982680000
8 26 => 803784718213396920000
8 27 => 3838761204861983400000
8 28 => 16503742828841748480000
8 29 => 62545434470667308160000
8 30 => 198853691115980300400000
8 31 => 474189571122722254800000
8 32 => 632252761496963006400000
이것들은 코드가 1 분 안에 처리 해야하는 모든 입력 (각각)이지만 더 큰 입력에는 원칙적으로 작동해야합니다. 다음 M = 10
테스트 사례 중 일부를 사용 하여이를 확인할 수 있습니다.
10 1 => 2
10 2 => 6
10 3 => 23
10 4 => 100
10 5 => 492
10 6 => 2674
10 7 => 15752
10 8 => 99936
10 9 => 676520
10 10 => 4853104
10 11 => 36727966
10 12 => 291849866
10 13 => 2426074222
10 14 => 21033972388
10 15 => 189645995396
10 16 => 1773525588406
10 17 => 17155884420532
10 18 => 171073929494468
10 19 => 1750412561088334
10 20 => 18258387148774916
10 21 => 192475976310317700
10 22 => 2028834600633220380
10 23 => 21127206177119902860
10 24 => 214639961631544809360
10 25 => 2101478398293813739200
10 26 => 19602967930531817832000
10 27 => 172444768103233181556000
10 28 => 1417975382888905296456000
10 29 => 10820259026484304813416000
10 30 => 76213534343700480310584000
10 31 => 493916052421168703366040000
10 32 => 2941900199368102067135040000
10 33 => 16113144277547868007416960000
10 34 => 81222252655277786422930560000
10 35 => 376309102059179385262246080000
10 36 => 1589579966324953534441910400000
10 37 => 5981477408861097281112374400000
10 38 => 19005991357166148698688124800000
10 39 => 45381652832417130566255318400000
10 40 => 60508870443222840755007091200000
turn()
나는 전에 help()
당신 get()
에 대한 답변을 load()
, 그렇지 않으면 내가해야 할 수 있습니다 ping()
으로부터 당신 void()
I 후 spark()
와 crash()
..... 남자 ...
N
기능이 사용 중입니다.