Az I. 441. feladat (2017. november) |
I. 441. Az Első Rend kutatói egy veszélyes sugárfegyvert fejlesztettek ki, amely minden eddig ismert védőpajzson áthatol. Az Ellenállás egy olyan szilárd anyagból álló pajzson kísérletezik, amely a sugárzást visszaveri vagy elnyeli. Tudósaik megállapították, hogy a sugárzás csak két anyag részecskéivel lép reakcióba. Amikor a sugárzás nagy energiájú, akkor a T anyag részecskéi, amikor már kisebb energiájú, akkor az N anyag részecskéi tudják befogni. Mindkét esetben a befogás után nem sokkal a részecskék is kibocsátanak sugárzást: az N anyag sugárzása veszélytelen, míg a T anyag kibocsát egy, a fegyvertől származó sugárzással egyező tulajdonságú, de kisebb energiájú sugárzást. Úgy is tekinthetjük, hogy a T anyag részecskéi visszaverik a nagy energiájú sugarakat, míg a kis energiájúak áthatolnak rajta. Az N anyag részecskéi elnyelik a kis energiájú sugarakat, de a nagy energiájúak áthatolnak rajta. Megmérték, hogy a fegyver sugárzása a T részecskékkel történő ötszöri reakció után válik kis energiájúvá.
A T és az N anyag nagyon ritka a Galaxisban, az Ellenállás csak igen keveset tudott beszerezni belőlük. A tudósok terve az, hogy az N és a T anyag részecskéit elkeverik egy olyan anyagba, amelyen áthatol a sugárzás. Az így kialakított pajzs – megfelelő vastagság, illetve megfelelő számú N és T részecske esetén – alkalmas lenne arra, hogy a sugárzás döntő részét elnyelje, vagy szétszórja, visszaverje. Mivel sem idő, sem megfelelő mennyiségű anyag nem áll rendelkezésre, ezért számítógépes szimulációval vizsgálják, hogy adott N és T részecskemennyiség, valamint falvastagság mellett a bejövő sugárzás mekkora része hatolna át a falon.
A tudósok szerint a jelenséget jól leírja egy síkbeli modell: a fal egy \(\displaystyle a\times b\) oldalú téglalap, a sugárzás a téglalap egyik \(\displaystyle b\) hosszúságú oldalán érkezik, és a téglalap belseje felé tart. A téglalapot gondolatban \(\displaystyle a\times b\) darab egységnyi négyzetre bontjuk. Mindegyik ilyen négyzet vagy üres (itt áthatol a fegyver sugárzása), vagy T típusú (egy T részecskét tartalmaz, amely a nagy energiájú sugárzást elnyeli), vagy N típusú (egy N részecskét tartalmaz, a kis energiájú sugárzást nyeli el). A T típusú szórás azt jelenti, hogy csökkent energiával, ugyanakkor véletlenszerű irányba történik az elnyelést követő kisugárzás. A sugárzás egyenes irányba terjed, minden négyzetet, amelyet érint, vizsgálni kell az előbbiek alapján. Ha a sugárzás a téglalap \(\displaystyle a\) hosszú oldalain kilép, akkor az ellenkező oldalon bejövő sugárzásként folytatja útját. Ha a sugárzás elnyelődik, vagy azon a \(\displaystyle b\) hosszú oldalon lép ki, amelyen beérkezett, akkor a fal hatékonyan működik. Ha a bejövő sugárzás a \(\displaystyle b\) hosszúságú másik oldalon lép ki, akkor átjutott a falon.
Készítsük el a szimulációt végző programot. A program standard bemenete a falat modellező téglalap \(\displaystyle a\) szélessége (\(\displaystyle 10 \le a\le 100\)), és \(\displaystyle b\) magassága (\(\displaystyle 100 \le b \le 10\,000\)), valamint az N és T típusú részecskét tartalmazó négyzetek száma a téglalapon (\(\displaystyle a\cdot b/10 \le \mathrm{N} + \mathrm{T} \le a\cdot b\)). A program adja meg a standard kimeneten, hogy \(\displaystyle 100\,000\) beérkező sugárzásból átlagosan hány sugár jut át a falon.
Példa bemenetek | Példa kimenetek |
10 150 100 100 | 63495 |
10 150 100 100 | 63414 |
20 150 200 400 | 23339 |
20 150 200 400 | 22930 |
50 5000 3000 10000 | 36083 |
50 5000 3000 10000 | 35997 |
Beküldendő egy tömörített i441.zip állományban a program forráskódja, valamint a program rövid dokumentációja, amely tartalmazza a megoldás rövid leírását, és megadja, hogy a forrásállomány melyik fejlesztői környezetben fordítható.
(10 pont)
A beküldési határidő 2017. december 11-én LEJÁRT.
A feladatra érkezett megoldások a szimulációt lényegében helyesen végezték. Egy probléma adódott, hogy a szövegből úgy értelmezték, hogy a sugárzás celláról-cellára "lép", és nem egyenesen terjed. Ez a valóságtól igen távol álló egyszerűsítés, pedig a feladat leírásában szerepelt, hogy a sugár egyenesen halad, és az így érintett négyzetek által meghatározott falrésszel kerül kapcsolatba. Ennek ellenére elfogadtuk ezt az értelmezést, így a helyes eredményt adó megoldások maximális pontot kaptak.
Egy mintamegoldás: i441.cpp
A tesztfájlok és a kapott kimenetek: teszt.zip
Statisztika:
8 dolgozat érkezett. 10 pontot kapott: Horcsin Bálint, Kis Lázár Bence. 9 pontot kapott: Sepsi Csombor Márton. 8 pontot kapott: 2 versenyző. 7 pontot kapott: 1 versenyző. 6 pontot kapott: 1 versenyző. 5 pontot kapott: 1 versenyző.
A KöMaL 2017. novemberi informatika feladatai