Neutriinoradar
문제
Mõne aja eest leidsid astronoomid tähe -2019A, millel on planeeti. Nüüd avastati, et üks neist planeetidest on eluks kõlbulik. Täht on aga nii kaugel, et selle planeete saab uurida ainult võimsa neutriinoradariga.
Radar töötab järgmiselt. Algul saadab radar tähesüsteemi suunas neurtiinovoo, mida iseloomustavad täisarvulised parameetrid ja . Tähesüsteemilt tagasi peegeldunud signaali analüüsides on võimalik sellest eraldada täisarv , kus on eluks kõlbuliku planeedi järjekorranumber (planeedid on nummerdatud alates tähele -2019A lähimast) ja tähistab arvude ja suurimat ühistegurit, see tähendab suurimat sellist täisarvu, millega nii kui jaguvad jäägita. Kuna neutriinovoo väljasaatmine on väga energiakulukas, võib seda teha maksimaalselt 40 korda.
Nüüd on astronoomidel vaja programmi, mis juhiks radarit ja tuvastaks eluks kõlbuliku planeedi numbri. Programmi tuumaks on funktsioon int Locate(int n). Seda funktsiooni kutsutakse välja üks kord, andes parameetrina tähe -2019A planeetide arvu , ja funktsioon peab tagastama eluks kõlbuliku planeedi numbri ().
Funktsioon Locate võib oma töö käigus kasutada funktsiooni int Scan(int x, int y), mis käivitab radari parameetritega ja (, ) ning tagastab radarisignaali analüüsi tulemuse . Funktsiooni Scan võib kasutada maksimaalselt 40 korda.
Testimiskeskkonnas on antud näitefailid, kus vajalikud funktsioonid on juba kirjeldatud ja vaja on lisada ainult funktsiooni Locate realisatsioon. Lisaks võib lahenduse faili kirjutada ka oma funktsioone. Oma lahenduse oma arvutis testimiseks on ka hindamisprogrammi näide, mille sisendi ja väljundi kirjeldus on toodud allpool (serveris on kasutusel teine hindamisprogramm, mis kontrollib ka lahenduse tagastatud vastuse õigsust). Oma lahenduse oma arvutis kompileerimiseks ja testimiseks:
입력
Tekstifaili ainsal real on kaks täisarvu: tähe -2019A planeetide koguarv () ja eluks kõlbliku planeedi number ().
출력
Tekstifaili väljastatakse hindamisprogrammi ja funktsiooni Locate vahelise suhtluse logi.
예제
예제 1
5 3
Locate(5) Scan(3, 6) = 3 Scan(4, 2) = 1 Scan(2, 1) = 2 Scan(4, 5) = 4 result = 3