#591
Într-o țară sunt n orașe, numerotate de la 1 la n, unite între ele prin m șosele bidirecționale de lungimi cunoscute, între oricare două orașe existând drum, fie șosea directă, fie prin alte orașe. O firmă dorește să-și stabilească sediul în unul dintre orașe, astfel încât suma lungimilor drumurilor minime de la orașul în care se află sediul la toate celelaltele orașe să fie minimă. Determinați orașul care va fi ales pentru sediul firmei. Dacă sunt mai multe orașe care pot fi alese, se va alege cel cu numărul de ordine mai mic.
| Problema | Firma | Operații I/O |
firma.in/firma.out
|
|---|---|---|---|
| Limita timp | 0.1 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
| Id soluție | #64367998 | Utilizator | |
| Fișier | firma.cpp | Dimensiune | 1.48 KB |
| Data încărcării | 03 Mai 2026, 22:16 | Scor/rezultat | Eroare de compilare |
firma.cpp: In function ‘int sum_djistkra(int)’: firma.cpp:26:9: error: ‘cost’ was not declared in this scope; did you mean ‘cosl’? 26 | cost = a.first; | ^~~~ | cosl firma.cpp:27:9: error: ‘nod’ was not declared in this scope 27 | nod = a.second; | ^~~ firma.cpp:31:37: error: no matching function for call to ‘std::set<std::pair<int, int> >::find(<brace-enclosed initializer list>)’ 31 | se.erase(se.find({s[v[nod][i].first], v[nod][i].first})); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/13/set:63, from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:158, from firma.cpp:1: /usr/include/c++/13/bits/stl_set.h:796:7: note: candidate: ‘std::set<_Key, _Compare, _Alloc>::iterator std::set<_Key, _Compare, _Alloc>::find(const key_type&) [with _Key = std::pair<int, int>; _Compare = std::less<std::pair<int, int> >; _Alloc = std::allocator<std::pair<int, int> >; iterator = std::_Rb_tree<std::pair<int, int>, std::pair<int, int>, std::_Identity<std::pair<int, int> >, std::less<std::pair<int, int> >, std::allocator<std::pair<int, int> > >::const_iterator; key_type = std::pair<int, int>]’ 796 | find(const key_type& __x) | ^~~~ /usr/include/c++/13/bits/stl_set.h:796:28: note: no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘const std::set<std::pair<int, int> >::key_type&’ {aka ‘const std::pair<int, int>&’} 796 | find(const key_type& __x) | ~~~~~~~~~~~~~~~~^~~ /usr/include/c++/13/bits/stl_set.h:800:7: note: candidate: ‘std::set<_Key, _Compare, _Alloc>::const_iterator std::set<_Key, _Compare, _Alloc>::find(const key_type&) const [with _Key = std::pair<int, int>; _Compare = std::less<std::pair<int, int> >; _Alloc = std::allocator<std::pair<int, int> >; const_iterator = std::_Rb_tree<std::pair<int, int>, std::pair<int, int>, std::_Identity<std::pair<int, int> >, std::less<std::pair<int, int> >, std::allocator<std::pair<int, int> > >::const_iterator; key_type = std::pair<int, int>]’ 800 | find(const key_type& __x) const | ^~~~ /usr/include/c++/13/bits/stl_set.h:800:28: note: no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘const std::set<std::pair<int, int> >::key_type&’ {aka ‘const std::pair<int, int>&’} 800 | find(const key_type& __x) const | ~~~~~~~~~~~~~~~~^~~ firma.cpp:34:26: error: no matching function for call to ‘std::set<std::pair<int, int> >::insert(<brace-enclosed initializer list>)’ 34 | se.insert({s[v[nod][i].first], v[nod][i].first}); | ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/13/bits/stl_set.h:568:9: note: candidate: ‘template<class _InputIterator> void std::set<_Key, _Compare, _Alloc>::insert(_InputIterator, _InputIterator) [with _Key = std::pair<int, int>; _Compare = std::less<std::pair<int, int> >; _Alloc = std::allocator<std::pair<int, int> >]’ 568 | insert(_InputIterator __first, _InputIterator __last) | ^~~~~~ /usr/include/c++/13/bits/stl_set.h:568:9: note: template argument deduction/substitution failed: firma.cpp:34:26: note: candidate expects 2 arguments, 1 provided 34 | se.insert({s[v[nod][i].first], v[nod][i].first}); | ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/13/bits/stl_set.h:511:7: note: candidate: ‘std::pair<typename std::_Rb_tree<_Key, _Key, std::_Identity<_Tp>, _Compare, typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key>::other>::const_iterator, bool> std::set<_Key, _Compare, _Alloc>::insert(const value_type&) [with _Key = std::pair<int, int>; _Compare = std::less<std::pair<int, int> >; _Alloc = std::allocator<std::pair<int, int> >; typename std::_Rb_tree<_Key, _Key, std::_Identity<_Tp>, _Compare, typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key>::other>::const_iterator = std::_Rb_tree<std::pair<int, int>, std::pair<int, int>, std::_Identity<std::pair<int, int> >, std::less<std::pair<int, int> >, std::allocator<std::pair<int, int> > >::const_iterator; typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key>::other = std::allocator<std::pair<int, int> >; typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key> = __gnu_cxx::__alloc_traits<std::allocator<std::pair<int, int> >, std::pair<int, int> >::rebind<std::pair<int, int> >; typename _Alloc::value_type = std::pair<int, int>; value_type = std::pair<int, int>]’ 511 | insert(const value_type& __x) | ^~~~~~ /usr/include/c++/13/bits/stl_set.h:511:32: note: no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘const std::set<std::pair<int, int> >::value_type&’ {aka ‘const std::pair<int, int>&’} 511 | insert(const value_type& __x) | ~~~~~~~~~~~~~~~~~~^~~ /usr/include/c++/13/bits/stl_set.h:520:7: note: candidate: ‘std::pair<typename std::_Rb_tree<_Key, _Key, std::_Identity<_Tp>, _Compare, typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key>::other>::const_iterator, bool> std::set<_Key, _Compare, _Alloc>::insert(value_type&&) [with _Key = std::pair<int, int>; _Compare = std::less<std::pair<int, int> >; _Alloc = std::allocator<std::pair<int, int> >; typename std::_Rb_tree<_Key, _Key, std::_Identity<_Tp>, _Compare, typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key>::other>::const_iterator = std::_Rb_tree<std::pair<int, int>, std::pair<int, int>, std::_Identity<std::pair<int, int> >, std::less<std::pair<int, int> >, std::allocator<std::pair<int, int> > >::const_iterator; typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key>::other = std::allocator<std::pair<int, int> >; typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key> = __gnu_cxx::__alloc_traits<std::allocator<std::pair<int, int> >, std::pair<int, int> >::rebind<std::pair<int, int> >; typename _Alloc::value_type = std::pair<int, int>; value_type = std::pair<int, int>]’ 520 | insert(value_type&& __x) | ^~~~~~ /usr/include/c++/13/bits/stl_set.h:520:27: note: no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘std::set<std::pair<int, int> >::value_type&&’ {aka ‘std::pair<int, int>&&’} 520 | insert(value_type&& __x) | ~~~~~~~~~~~~~^~~ /usr/include/c++/13/bits/stl_set.h:548:7: note: candidate: ‘std::set<_Key, _Compare, _Alloc>::iterator std::set<_Key, _Compare, _Alloc>::insert(const_iterator, const value_type&) [with _Key = std::pair<int, int>; _Compare = std::less<std::pair<int, int> >; _Alloc = std::allocator<std::pair<int, int> >; iterator = std::_Rb_tree<std::pair<int, int>, std::pair<int, int>, std::_Identity<std::pair<int, int> >, std::less<std::pair<int, int> >, std::allocator<std::pair<int, int> > >::const_iterator; const_iterator = std::_Rb_tree<std::pair<int, int>, std::pair<int, int>, std::_Identity<std::pair<int, int> >, std::less<std::pair<int, int> >, std::allocator<std::pair<int, int> > >::const_iterator; value_type = std::pair<int, int>]’ 548 | insert(const_iterator __position, const value_type& __x) | ^~~~~~ /usr/include/c++/13/bits/stl_set.h:548:7: note: candidate expects 2 arguments, 1 provided /usr/include/c++/13/bits/stl_set.h:553:7: note: candidate: ‘std::set<_Key, _Compare, _Alloc>::iterator std::set<_Key, _Compare, _Alloc>::insert(const_iterator, value_type&&) [with _Key = std::pair<int, int>; _Compare = std::less<std::pair<int, int> >; _Alloc = std::allocator<std::pair<int, int> >; iterator = std::_Rb_tree<std::pair<int, int>, std::pair<int, int>, std::_Identity<std::pair<int, int> >, std::less<std::pair<int, int> >, std::allocator<std::pair<int, int> > >::const_iterator; const_iterator = std::_Rb_tree<std::pair<int, int>, std::pair<int, int>, std::_Identity<std::pair<int, int> >, std::less<std::pair<int, int> >, std::allocator<std::pair<int, int> > >::const_iterator; value_type = std::pair<int, int>]’ 553 | insert(const_iterator __position, value_type&& __x) | ^~~~~~ /usr/include/c++/13/bits/stl_set.h:553:7: note: candidate expects 2 arguments, 1 provided /usr/include/c++/13/bits/stl_set.h:580:7: note: candidate: ‘void std::set<_Key, _Compare, _Alloc>::insert(std::initializer_list<_Tp>) [with _Key = std::pair<int, int>; _Compare = std::less<std::pair<int, int> >; _Alloc = std::allocator<std::pair<int, int> >]’ 580 | insert(initializer_list<value_type> __l) | ^~~~~~ /usr/include/c++/13/bits/stl_set.h:580:43: note: no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘std::initializer_list<std::pair<int, int> >’ 580 | insert(initializer_list<value_type> __l) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~ firma.cpp: In function ‘int main()’: firma.cpp:47:16: warning: ignoring return value of ‘FILE* freopen(const char*, const char*, FILE*)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 47 | freopen("firma.in", "r", stdin); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ firma.cpp:48:16: warning: ignoring return value of ‘FILE* freopen(const char*, const char*, FILE*)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 48 | freopen("firma.out", "w", stdout); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ firma.cpp:49:14: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 49 | scanf("%d %d\n", &n, &m); | ~~~~~^~~~~~~~~~~~~~~~~~~ firma.cpp:51:22: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 51 | scanf("%d %d %d\n", &x, &y, &d); | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Firma 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ă.