Detalii evaluare #53061163

Rezumat problemă

#1701 Birouri

Arhi şi-a propus să extindă clădirea de birouri pe care a proiectat-o iniţial pe un singur nivel numerotat cu 1, împărţit în n*n zone pătratice de latură 1, fiecare corespunzând unui birou, prin construirea mai multor niveluri. În colţurile tuturor birourilor se construiesc grinzi de rezistenţă. Pentru a asigura rezistenţa întregii clădiri, Arhi va proiecta niveluri noi, numerotate cu 2, 3,… atât timp cât conțin cel puțin un birou și sunt respectate următoarele patru reguli:

  • R1: fiecare nivel nou va fi proiectat sub forma unui dreptunghi sau pătrat de arie maximă pentru nivelele cu număr impar, respectiv, sub forma unui pătrat de arie maximă pentru nivelele cu număr par;
  • R2: fiecare dintre colţurile zidurilor unui nivel nou trebuie plasat pe câte o grindă de rezistenţă dintre două sau mai multe birouri de pe nivelul precedent;
  • R3: oricare două dintre colţurile zidurilor unui nivel nou vor fi plasate pe ziduri diferite (un zid nu se poate suprapune în totalitate pe alt zid) şi cel puţin două vârfuri opuse ale unui nivel nou se vor afla pe ziduri opuse ale nivelului precedent;
  • R4: orice porţiune de zid de pe nivelul k (k>1), construită deasupra unui birou de pe nivelul k-1, se va suprapune exact peste una dintre laturile biroului, sau îl va străbate în diagonală.

Birourile de pe nivelul k (k>1), vor fi construite exact deasupra celor de pe nivelul precedent, astfel, nivelurile 2, 4 etc. vor avea lângă ziduri spaţii triunghiulare care nu vor aparţine niciunui birou.

Numerele inscripţionate pe birouri în imaginea de mai sus, indică nivelul corespunzător birourilor vizibile de deasupra clădirii.

Cunoscându-se lungimea n a laturii primului nivel al clădirii, să se determine:

  1. numărul maxim de niveluri pe care le poate avea clădirea;
  2. numărul total de birouri ale clădirii cu număr maxim de niveluri.

ONI 2016, clasa a VII-a

Detalii

Problema Birouri Operații I/O birouri.in/birouri.out
Limita timp 0.2 secunde Limita memorie Total: 2 MB / Stivă 2 MB
Id soluție #53061163 Utilizator Salaot Stan (McM)
Fișier birouri.c Dimensiune 798 B
Data încărcării 16 Octombrie 2024, 18:04 Scor / rezultat Eroare de compilare

Evaluare


Mesaj compilare

birouri.c:1:1: error: unknown type name 'program'
 program CS_birouri;

 ^
birouri.c:2:1: error: unknown type name 'var'
 var

 ^
birouri.c:3:24: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token
  n, m, k, c, niv, b, p : longint;

                        ^
birouri.c:4:2: warning: data definition has no type or storage class [enabled by default]
  fin, fout:text;

  ^
birouri.c:4:2: warning: type defaults to 'int' in declaration of 'fin' [enabled by default]
birouri.c:4:11: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token
  fin, fout:text;

           ^
birouri.c:5:1: error: unknown type name 'begin'
 begin

 ^
birouri.c:6:14: warning: character constant too long for its type [enabled by default]
  assign(fin, 'birouri.in');

              ^
birouri.c:6:14: error: expected ')' before '\x692e696e'
birouri.c:7:14: warning: character constant too long for its type [enabled by default]
  assign(fout,'birouri.out');

              ^
birouri.c:7:14: error: expected ')' before '\x2e6f7574'
birouri.c:8:2: warning: data definition has no type or storage class [enabled by default]
  reset(fin); rewrite(fout);

  ^
birouri.c:8:2: warning: type defaults to 'int' in declaration of 'reset' [enabled by default]
birouri.c:8:2: warning: parameter names (without types) in function declaration [enabled by default]
birouri.c:8:14: warning: data definition has no type or storage class [enabled by default]
  reset(fin); rewrite(fout);

              ^
birouri.c:8:14: warning: type defaults to 'int' in declaration of 'rewrite' [enabled by default]
birouri.c:8:2: warning: parameter names (without types) in function declaration [enabled by default]
  reset(fin); rewrite(fout);

  ^
birouri.c:9:6: warning: data definition has no type or storage class [enabled by default]
      readln(fin, c, n);

      ^
birouri.c:9:6: warning: type defaults to 'int' in declaration of 'readln' [enabled by default]
birouri.c:9:6: warning: parameter names (without types) in function declaration [enabled by default]
birouri.c:10:3: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token
  m:=n;

   ^
birouri.c:11:6: error: unknown type name 'repeat'
      repeat

      ^
birouri.c:12:10: warning: parameter names (without types) in function declaration [enabled by default]
          inc(niv);

          ^
birouri.c:13:10: error: expected identifier or '(' before 'if'
          if niv mod 2 = 1 then

          ^
birouri.c:18:17: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token
               p := k * k div 2 - k;

                 ^
birouri.c:19:6: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token
    b := b + p;

      ^
birouri.c:20:15: error: expected identifier or '(' before 'if'
               if p = 0 then dec(niv);

               ^
birouri.c:21:15: error: expected identifier or '(' before 'if'
               if k mod 4 = 0 then begin

               ^
birouri.c:23:7: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token
     n := k; m := k

       ^
birouri.c:23:15: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token
     n := k; m := k

               ^
birouri.c:26:25: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token
     n := n div 2 - 1; m := n + 2

                         ^
birouri.c:29:6: error: unknown type name 'until'
      until not((n <> 0) and (n mod 2 = 0));

      ^
birouri.c:29:16: error: expected declaration specifiers or '...' before '(' token
      until not((n <> 0) and (n mod 2 = 0));

                ^
birouri.c:30:6: error: expected identifier or '(' before 'if'
      if c=1 then

      ^
birouri.c:34:3: warning: data definition has no type or storage class [enabled by default]
   close(fin); close(fout);

   ^
birouri.c:34:3: warning: type defaults to 'int' in declaration of 'close' [enabled by default]
birouri.c:34:3: warning: parameter names (without types) in function declaration [enabled by default]
birouri.c:34:15: warning: data definition has no type or storage class [enabled by default]
   close(fin); close(fout);

               ^
birouri.c:34:15: warning: type defaults to 'int' in declaration of 'close' [enabled by default]
birouri.c:34:3: warning: parameter names (without types) in function declaration [enabled by default]
   close(fin); close(fout);

   ^
birouri.c:35:4: error: expected '=', ',', ';', 'asm' or '__attribute__' before '.' token
 end.

    ^

Cum funcționează evaluarea?

www.pbinfo.ro permite evaluarea a două tipuri de probleme:

  • probleme la care rezolvarea presupune scrierea unui program complet
  • probleme la care rezolvarea presupune scrierea unei secvențe de program - câteva instrucțiuni, o listă de declarații, una sau mai multe funcții, etc.

Problema Birouri face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:

  • Programul sursă este compilat folosind compilatorul corespunzător. Dacă în urma compilării se obțin erori sau avertismente, acestea sunt afișate în această pagină.
  • Dacă programul a fost compilat, executabilul obținut va fi rulat, furnizându-i-se unul sau mai multe seturi de date de intrare, în concordanță cu restricțiile specifice problemei. Pentru fiecare set de date se obține un anumit punctaj, în raport cu corectitudinea soluției tale.

Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.