#750
Ana are un joc nou. Pe o tablă pătrată este trasat un grid format din celule pătratice de dimensiune 1. În oricare dintre colţurile oricărei celule, Ana poate înfige câte un beţişor perpendicular pe tablă. După ce a plasat n beţişoare, Ana ia dintr-o cutie (cu un număr suficient de mare de corzi elastice circulare) câte o coardă cu care înconjoară trei sau mai multe beţişoare. Fiecare coardă este bine întinsă şi formează pe tablă un contur poligonal.
În figura alăturată este folosită o coardă ce formează un contur poligonal cu 4 laturi cu care sunt înconjurate 5 dintre cele 8 beţişoare de pe tablă.
Jocul se încheie când au fost plasate atâtea coarde încât toate beţişoarele de pe tablă să se afle pe marginea sau în interiorul a cel puţin unul dintre contururile poligonale formate. Scopul jocului este ca amplasarea corzilor să fie făcută convenabil astfel încât totalul ariilor contururilor poligonale formate să fie minim.

Cunoscând coordonatele celor n beţişoare (x[1], y[1]), (x[2], y[2]), …, (x[n], y[n]) măsurate faţă de unul dintre colţurile gridului, Ana doreşte să găsească suma minimă a ariilor poligonale obţinute prin amplasarea convenabilă a coardelor, astfel încât fiecare beţişor să se găsească în interiorul sau pe conturul a cel puţin un astfel de poligon.
Lot Juniori, Cluj Napoca, 2009
| Problema | smin | Operații I/O |
smin.in/smin.out
|
|---|---|---|---|
| Limita timp | 2.5 secunde | Limita memorie |
Total: 16 MB
/
Stivă 16 MB
|
| Id soluție | #63946335 | Utilizator | |
| Fișier | smin.cpp | Dimensiune | 673 B |
| Data încărcării | 29 Martie 2026, 09:43 | Scor/rezultat | Eroare de compilare |
smin.cpp:7:1: error: expected ';' after struct definition } ^ smin.cpp: In function 'int arie(punct, punct, punct)': smin.cpp:10:81: error: call of overloaded 'abs(double)' is ambiguous return abs(p1.X * (p2.Y - p3.Y) + p2.X * ( p1.Y - p3.X) + p3.X * ( p1.Y - p2.Y)); ^ smin.cpp:10:81: note: candidates are: In file included from /usr/include/c++/4.8/cstdlib:72:0, from /usr/include/c++/4.8/ext/string_conversions.h:41, from /usr/include/c++/4.8/bits/basic_string.h:2815, from /usr/include/c++/4.8/string:52, from /usr/include/c++/4.8/bits/locale_classes.h:40, from /usr/include/c++/4.8/bits/ios_base.h:41, from /usr/include/c++/4.8/ios:42, from /usr/include/c++/4.8/ostream:38, from /usr/include/c++/4.8/iostream:39, from smin.cpp:1: /usr/include/stdlib.h:775:12: note: int abs(int) extern int abs (int __x) __THROW __attribute__ ((__const__)) __wur; ^ In file included from /usr/include/c++/4.8/ext/string_conversions.h:41:0, from /usr/include/c++/4.8/bits/basic_string.h:2815, from /usr/include/c++/4.8/string:52, from /usr/include/c++/4.8/bits/locale_classes.h:40, from /usr/include/c++/4.8/bits/ios_base.h:41, from /usr/include/c++/4.8/ios:42, from /usr/include/c++/4.8/ostream:38, from /usr/include/c++/4.8/iostream:39, from smin.cpp:1: /usr/include/c++/4.8/cstdlib:174:3: note: long long int std::abs(long long int) abs(long long __x) { return __builtin_llabs (__x); } ^ /usr/include/c++/4.8/cstdlib:166:3: note: long int std::abs(long int) abs(long __i) { return __builtin_labs(__i); } ^ smin.cpp: In function 'int main()': smin.cpp:18:2: error: 'fin' was not declared in this scope fin >> N; ^ smin.cpp:23:31: error: 'n' was not declared in this scope for (int mask = 0;mask<=(1<<(n-1)-1;mask++) ^ smin.cpp:23:37: error: expected ')' before ';' token for (int mask = 0;mask<=(1<<(n-1)-1;mask++) ^ smin.cpp:24:8: error: 'p1' was not declared in this scope for (p1 = 0;p1<N;p1++) ^ smin.cpp:25:9: error: 'p2' was not declared in this scope for (p2 = p1+1;p2<N;p2++) ^ smin.cpp:26:10: error: 'p3' was not declared in this scope for (p3 = p2+1;p3<N;p3++) ^ smin.cpp:27:6: error: 'd' was not declared in this scope d[mask | (1<<p1) | (1<<p2) | (1<<p3)] = min(d[mask | (1<<p1) | (1<<p2) | (1<<p3)] , d[mask] + aerie(p[p1],p[p2],p[p3])); ^ smin.cpp:27:123: error: 'aerie' was not declared in this scope d[mask | (1<<p1) | (1<<p2) | (1<<p3)] = min(d[mask | (1<<p1) | (1<<p2) | (1<<p3)] , d[mask] + aerie(p[p1],p[p2],p[p3])); ^ smin.cpp:29:2: error: 'fout' was not declared in this scope fout << std::setprecision(3) << std::showpoint << d[1<<(n-1)-1]/2.0; ^ smin.cpp:29:10: error: 'setprecision' is not a member of 'std' fout << std::setprecision(3) << std::showpoint << d[1<<(n-1)-1]/2.0; ^ smin.cpp:29:52: error: 'd' was not declared in this scope fout << std::setprecision(3) << std::showpoint << d[1<<(n-1)-1]/2.0; ^ smin.cpp:29:58: error: 'n' was not declared in this scope fout << std::setprecision(3) << std::showpoint << d[1<<(n-1)-1]/2.0; ^ smin.cpp: In function 'int arie(punct, punct, punct)': smin.cpp:11:1: warning: control reaches end of non-void function [-Wreturn-type] } ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema smin face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
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ă.