Detalii evaluare #43384400

Rezumat problemă

#1028 Ferma

Un fermier deține o fermă de formă dreptunghiulară cu lungimea m metri și lățimea n metri. Respectând principiul rotației culturilor, fermierul și a realizat un plan pentru semănarea culturilor în noul an. Astfel ,el a desenat un dreptunghi pe care l-a împărțit în m * n celule, fiecare corespunzând unui metru pătrat, și a colorat în culori diferite zonele care corespund unor culturi diferite. O cultură poate fi semănată pe mai multe parcele. Două celule care au o latură comună aparțin aceleiași parcele dacă au aceeași culoare (sunt însămânțate cu aceeași cultură). Fermierul are posibilitatea să irige o sigură parcelă și dorește să aleagă parcela cu cea mai mare suprafață. Nefiind mulțumit de suprafața rezultată, s-a întrebat dacă ar putea schimba cultura de pe o singură celulă, astfel încât să obțină o parcelă de suprafață mai mare.

Dându-se dimensiunile fermei și pentru fiecare celulă culoarea corespunzătoare culturii semănate, determinați:

  • Cerința 1: Suprafața maximă a unei parcele în planul inițial.
  • Cerința 2: Numărul liniei, respectiv al coloanei celulei pe care va semăna o altă cultură și culoarea corespunzătoare noii culturi în vederea obţinerii celei mai mari parcele posibile.

OJI 2014, Clasa a X-a

Detalii

Problema Ferma Operații I/O ferma.in/ferma.out
Limita timp 0.2 secunde Limita memorie Total: 32 MB / Stivă 10 MB
Id soluție #43384400 Utilizator Ion Vasile (offlineman123)
Fișier ferma.cpp Dimensiune 3.60 KB
Data încărcării 23 Aprilie 2023, 18:24 Scor / rezultat Eroare de compilare

Evaluare


Mesaj compilare

ferma.cpp:96:2: error: stray '#' in program
 }#include <fstream>

  ^
ferma.cpp:96:3: error: 'include' does not name a type
 }#include <fstream>

   ^
ferma.cpp:101:13: error: redefinition of 'std::ifstream fin'
 ifstream fin(".in");

             ^
ferma.cpp:6:10: error: 'std::ifstream fin' previously declared here
 ifstream fin("ferma.in");

          ^
ferma.cpp:102:14: error: redefinition of 'std::ofstream fout'
 ofstream fout(".out");

              ^
ferma.cpp:7:10: error: 'std::ofstream fout' previously declared here
 ofstream fout("ferma.out");

          ^
ferma.cpp:105:7: error: redefinition of 'short int n'
 short n, m;

       ^
ferma.cpp:10:7: error: 'short int n' previously declared here
 short n, m;

       ^
ferma.cpp:105:10: error: redefinition of 'short int m'
 short n, m;

          ^
ferma.cpp:10:10: error: 'short int m' previously declared here
 short n, m;

          ^
ferma.cpp:106:7: error: redefinition of 'short int cerinta'
 short cerinta;

       ^
ferma.cpp:11:7: error: 'short int cerinta' previously declared here
 short cerinta;

       ^
ferma.cpp:107:6: error: redefinition of 'char ch'
 char ch;

      ^
ferma.cpp:12:6: error: 'char ch' previously declared here
 char ch;

      ^
ferma.cpp:108:15: error: redefinition of 'int a [405][405]'
 int a[405][405], b[405][405], zona;

               ^
ferma.cpp:13:5: error: 'int a [405][405]' previously declared here
 int a[405][405], b[405][405], zona;

     ^
ferma.cpp:108:28: error: redefinition of 'int b [405][405]'
 int a[405][405], b[405][405], zona;

                            ^
ferma.cpp:13:18: error: 'int b [405][405]' previously declared here
 int a[405][405], b[405][405], zona;

                  ^
ferma.cpp:108:31: error: redefinition of 'int zona'
 int a[405][405], b[405][405], zona;

                               ^
ferma.cpp:13:31: error: 'int zona' previously declared here
 int a[405][405], b[405][405], zona;

                               ^
ferma.cpp:109:9: error: redefinition of 'int dx [4]'
 int dx[4] = {-1, 0, 1, 0};

         ^
ferma.cpp:14:5: error: 'int dx [4]' previously defined here
 int dx[4] = {-1, 0, 1, 0};

     ^
ferma.cpp:110:9: error: redefinition of 'int dy [4]'
 int dy[4] = {0, 1, 0, -1};

         ^
ferma.cpp:15:5: error: 'int dy [4]' previously defined here
 int dy[4] = {0, 1, 0, -1};

     ^
ferma.cpp:111:14: error: redefinition of 'int nr [160005]'
 int nr[160005];

              ^
ferma.cpp:16:5: error: 'int nr [160005]' previously declared here
 int nr[160005];

     ^
ferma.cpp: In function 'bool inside(int, int)':
ferma.cpp:113:6: error: redefinition of 'bool inside(int, int)'
 bool inside(int x, int y) { return x >= 1 && x <= n && y >= 1 && y <= m; }

      ^
ferma.cpp:18:6: error: 'bool inside(int, int)' previously defined here
 bool inside(int x, int y) { return x >= 1 && x <= n && y >= 1 && y <= m; }

      ^
ferma.cpp: At global scope:
ferma.cpp:117:15: error: conflicting declaration '<anonymous struct> coada [160005]'
 } coada[160005];

               ^
ferma.cpp:22:3: error: 'coada' has a previous declaration as '<anonymous struct> coada [160005]'
 } coada[160005];

   ^
ferma.cpp: In function 'void lee(short int, short int, short int)':
ferma.cpp:119:6: error: redefinition of 'void lee(short int, short int, short int)'
 void lee(short xstart, short ystart, short zona)

      ^
ferma.cpp:24:6: error: 'void lee(short int, short int, short int)' previously defined here
 void lee(short xstart, short ystart, short zona)

      ^
ferma.cpp: In function 'int main()':
ferma.cpp:149:5: error: redefinition of 'int main()'
 int main() {

     ^
ferma.cpp:54:5: error: 'int main()' previously defined here
 int main() {

     ^

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 Ferma 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ă.