#1188
Casa
În această poveste este vorba despre o casă cu mai multe camere. O cameră are forma unui pătrat de latură 1
. Dacă două camere au un perete comun, atunci se poate trece dintr-o cameră în alta. Casa nu are neapărat formă dreptunghiulară.
O asemenea casă poate fi descrisă în povestea noastră în două moduri:
0
şi 1
în care există N
valori egale cu 1
, ce corespund camerelor, iar prima linie, ultima linie, prima coloană şi ultima coloană au cel puţin un element egal cu 1
.N-1
perechi (a[i], b[i]) 1≤i<n
în care a[i]
din {1,2,…,i}
şi b[i]
din {N, S, E, V}
. Camerele vor fi numerotate de la 1
la n
. Perechea (a[i], b[i])
precizează poziţia camerei i+1
faţă de camera a[i]
: E
înseamnă la dreapta (est), N
deasupra (nord), V
la stânga (vest), S
dedesubt (sud). Observaţi că pentru prima cameră nu există nicio precizare!De exemplu, casa de mai sus poate fi descrisă de şirul (1 E) (2 E) (2 S) (3 S)
, adică a doua cameră e “lipită” la est de prima cameră, următoarea (a treia) la est de camera 2, a patra la sud de camera 2, iar ultima la sud de camera 3.
Cerința
Problema | Casa | Operații I/O |
casa.in /casa.out
|
---|---|---|---|
Limita timp | 0.1 secunde | Limita memorie |
Total: 4 MB
/
Stivă 4 MB
|
Id soluție | #34020611 | Utilizator | |
Fișier | casa.cpp | Dimensiune | 3.81 KB |
Data încărcării | 18 Ianuarie 2022, 17:53 | Scor / rezultat | Eroare de compilare |
casa.cpp: In function 'void Solve1()': casa.cpp:39:28: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if(ind == ans.size()) continue; ^ casa.cpp:42:30: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] while(ind < ans.size() && h == ans[ind].first) ^ casa.cpp:63:28: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if(ind == ans.size()) continue; ^ casa.cpp:66:30: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] while(ind < ans.size() && h == ans[ind].first) ^ casa.cpp: In function 'int main()': casa.cpp:15:13: error: 'class std::vector<bool>' has no member named 'emplace_back' #define add emplace_back ^ casa.cpp:91:58: note: in expansion of macro 'add' for(int j = 1; j <= m; ++j) cin >> ok,mat[i].add(ok),p += ok,verif[i].add(0); ^ casa.cpp:15:13: error: 'class std::vector<bool>' has no member named 'emplace_back' #define add emplace_back ^ casa.cpp:91:83: note: in expansion of macro 'add' for(int j = 1; j <= m; ++j) cin >> ok,mat[i].add(ok),p += ok,verif[i].add(0); ^ casa.cpp:89:19: warning: unused variable 'pz' [-Wunused-variable] int p = 0,pz = -1; ^ casa.cpp:92:13: warning: unused variable 's' [-Wunused-variable] int s = -1,s2 = -1; ^ casa.cpp:92:20: warning: unused variable 's2' [-Wunused-variable] int s = -1,s2 = -1; ^ casa.cpp:3:43: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] #define FILES freopen("casa.in","r",stdin);\ ^ casa.cpp:82:5: note: in expansion of macro 'FILES' FILES ^ casa.cpp:4:45: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("casa.out","w",stdout); ^ casa.cpp:82:5: note: in expansion of macro 'FILES' FILES ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Casa 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ă.