Fişierul intrare/ieşire:robot1.in, robot1.outSursăLot Sovata 2014 - Baraj 2 Juniori
AutorCristina IordaicheAdăugată deAlexandruValeanuAlexandru Valeanu AlexandruValeanu
Timp execuţie pe test0.05 secLimită de memorie6144 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Robot1

Studenţii Facultăţii de Informatică din cadrul Universităţii din Cluj, au conceput roboţi care şterg praful, plantează copaci, pun gresie, servesc masa, etc.
Botezat „Rosie“, robotul care şterge praful are două braţe (S-stâng şi D-drept) pe care sunt montate nişte perii ce sunt învârtite cu ajutorul unui motoraş. Braţul robotului este programat să se poziţioneze în dreptul unei suprafeţe, periile învârtite de motoraş parcurg suprafaţa ştergând în acest fel praful de pe ea.
Pentru o demonstraţie, robotul este aşezat în faţa unei etajere cu N rafturi numerotate în ordine, de jos în sus, cu numere de la 1 la N. Braţul stâng (S) al robotului este poziţionat în dreptul primului raft iar celălat braţ (D) în dreptul celui de-al K-lea raft.

Pentru ştergerea prafului, deplasarea braţelor robotului este programată astfel:

  • fiecare braţ se deplasează doar de jos în sus, de la raftul în dreptul căruia este poziţionat la un moment dat, la raftul situat imediat deasupra acestuia;
  • din minut în minut, se deplasează doar unul din braţe, se poziţionează în dreptul raftului corespunzător şi şterge praful de pe acesta;
  • dacă ambele braţe ajung în dreptul aceluiaşi raft, atunci robotul se blochează şi demonstraţia se încheie fără succes.

Cerinţă

Ştiind că demonstraţia se termină în momentul în care braţul drept (D) al robotului a ajuns pe ultimul raft al etajerei, scrieţi un program care calculează numărul M de modalităţi diferite în care poate fi programat robotul pentru a asigura succesul demonstraţiei.
Programul va afişa restul împărţirii numărului M la 64997.

Date de intrare

Fişierul de intrare robot1.in conţine pe prima linie două numere naturale N şi K, în această ordine, separate printr-un spaţiu, având semnificaţia din enunţ.

Date de ieşire

În fişierul robot1.out se va scrie pe prima linie un singur număr natural ce reprezintă restul împărţirii numărului M la 64997.

Restricţii

  • 2 ≤ K ≤ N ≤ 2800
  • cele două braţe NU se pot mişca simultan;
  • un braţ poate fi programat să se deplaseze în dreptul unui raft de pe care a fost deja şters praful;
  • un mod de programare al robotului este definit printr-o succesiune de deplasări ale braţelor: S, D
  • două moduri de programare ale robotului sunt diferite dacă acestea au cel puţin o deplasare S sau D diferită. 

Exemplu

robot1.inrobot1.out
5 2
5

Explicaţie

Sunt 5 modalităţi de programare a robotului pentru ca braţul drept să ajungă la ultimul raft: 
modalitatea 1:  D: 2→3(deplasare de la raftul 2 la raftul 3)  D: 3→4D: 4→5
modalitatea 2:  D: 2→3S: 1→2D: 3→4D: 4→5
modalitatea 3:  D: 2→3S: 1→2D: 3→4D: 2→3D: 4→5
modalitatea 4:  D: 2→3D: 3→4S: 1→2D: 4→5
modalitatea 5:  D: 2→3D: 3→4S: 1→2D: 2→3D: 4→5

Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?