|
Titlul: Matricraft Scris de: Alex Ifrim din Noiembrie 21, 2016, 13:27:18 Salut! Ieri mi-a venit ideea să încerc să încerc să creez o problema de informatică, de genul celor care se întâlnesc pe site-uri. Problema este relativ simpluță, dar încă sunt la început. Vreau să știu dacă problema este ușor de înțeles, iar eu mă aflu în imposibilitatea de a-mi da cu părerea în acest caz. Mă puteți ajuta ??
update: 1. Am dat un exemplu mai mix și am oferit și o explicație a acestuia. 2. Am corectat neclaritatea legata de cadere. Matricraft Lumea Minecraftului este alcătuită din blocuri cu dimensiunea de 1x1x1. Aceste blocuri pot să fie de două tipuri: cele care se supun gravității (de tipul 1) și cele care nu se supun gravității (de tipul 2), adică cele care pot rămâne suspendate în aer. Interesant este faptul că, dacă un bloc care se supune gravității se află lângă unul care nu se supune gravității, atunci blocul se va lipi de el, și va rămâne și el suspendat. De precizat este faptul că, un bloc care se află în mișcare nu se poate lipi de un bloc care nu se supune gravității. Prietenul nostru Gigel a găsit o cale prin care poate să genereze blocuri la întâmplare, pe o anumită suprafață, de NxMx1, însă acesta are o problemă, nu poate să genereze blocurile decât pe o suprafață existentă de minim NxM, care poate să conțină sau nu blocuri, astfel, dupa ce Gigel a generat suprafața, unele blocuri ar putea să cadă în vid. Gigel are nevoie să știe câte blocuri i-au rămas intacte după generare. Cerință Se cunosc N și M, reprezentând dimensiunile a doua matrici și cele doua matrici, prima reprezentând blocurile generate de Gigel, care pot fi de tipul 0,1 sau 2, tipul 0 reprezentând un bloc vid, și a doua matrice, care reprezintă terenul pe care Gigel generează blocurile, care poate fi alcătuită doar din 2 sau 0. Cunoscăndu-se proprietățile blocurilor 0, 1 și 2, să se calculeze cate blocuri, din cele generate de Gigel, vor rămâne intacte. Date de intrare Fișierul matricraft.in va conține pe prima linie doua valori, N și M, reprezentând dimensiunile celor două matrici, iar pe următoarele cele două matrici, fiecare de dimensiune NxM. Date de ieșire Fișierul matricraft.out va conține pe o singură linie o valoare, reprezentând numărul de blocuri care vor rămâne intacte, în urma generării. Restricții și precizări 2 ≤ N,M ≤ 1000 Exemplu matricraft.in 3 4 1 2 0 0 2 1 1 1 1 1 1 0 2 0 2 2 0 0 0 2 2 0 0 0 matricaft.out 6 Explicație În total vor rămâne 6, deoarece primul element de pe linia 1 și 3 și al doilea de pe linia 2 se vor lipi de blocurile care nu se supun gravității, care se află alături. În momentul în care se va genera prima matrice, pe terenul care are structura matricei doi, unele blocuri vor cădea printre spațiile libere, rămânând doar 6. 1 2 0 0 2 1 1 1 1 1 1 0 Cifrele îngroșate reprezintă blocurile care vor cădea în vid. Exemplul 2 matricraft.in 6 7 1 1 1 1 1 1 1 2 1 2 2 1 0 1 2 2 2 2 2 2 2 1 0 0 0 0 0 0 2 1 1 1 1 0 2 0 1 2 0 2 1 0 0 0 0 0 0 0 0 2 2 2 0 0 0 0 0 0 0 2 2 2 0 2 0 2 0 2 2 2 0 0 0 0 0 0 0 2 0 2 0 2 0 2 matricaft.out 23 Titlul: Răspuns: Matricraft Scris de: Mihai Calancea din Noiembrie 21, 2016, 18:38:50 Salut!
Cred că ar ajuta dacă ai explica exemplul: poți copia din nou matricea generată și să îngroșezi piesele care vor dispărea. Mie nu mi-e clar de ce rămân 23 și vreau să văd de ce. În general e bine să pui (și) un exemplu mai mic :). Titlul: Răspuns: Matricraft Scris de: Alex Ifrim din Noiembrie 21, 2016, 21:01:13 Salut! Cred că ar ajuta dacă ai explica exemplul: poți copia din nou matricea generată și să îngroșezi piesele care vor dispărea. Mie nu mi-e clar de ce rămân 23 și vreau să văd de ce. În general e bine să pui (și) un exemplu mai mic :). Am modificat exemplul cu unul mai mic și am adăugat și o exemplificare a acestuia. Titlul: Răspuns: Matricraft Scris de: Mihai Calancea din Noiembrie 22, 2016, 15:41:41 Hm, ok. Pe exemplul ăsta aș fi zis și eu că e 6. Ești sigur că erau 23 pe cel precedent?
De-asemenea, cred că e puțin neclară următoarea chestie: Citat dacă un bloc care se supune gravității se află lângă unul care nu se supune gravității, atunci blocul se va lipi de el, și va rămâne și el suspendat. Din asta s-ar putea deduce că pentru testul: Cod: 1 2 răspunsul este 1. Pentru că dacă am înțeles bine, celula de tip 1 va începe să cadă și va trece pe lângă o celulă de tip 2, ceea ce ar fixa-o. Dar din ce văd în exemplul ăsta, se pare că nu e așa. Titlul: Răspuns: Matricraft Scris de: Alex Ifrim din Noiembrie 22, 2016, 18:12:17 Hm, ok. Pe exemplul ăsta aș fi zis și eu că e 6. Ești sigur că erau 23 pe cel precedent? De-asemenea, cred că e puțin neclară următoarea chestie: Citat dacă un bloc care se supune gravității se află lângă unul care nu se supune gravității, atunci blocul se va lipi de el, și va rămâne și el suspendat. Din asta s-ar putea deduce că pentru testul: Cod: 1 2 răspunsul este 1. Pentru că dacă am înțeles bine, celula de tip 1 va începe să cadă și va trece pe lângă o celulă de tip 2, ceea ce ar fixa-o. Dar din ce văd în exemplul ăsta, se pare că nu e așa. Am corectat neclaritatea legată de căderea blocurilor. |