Author |
Message |
27/11/2018 20:54:22
|
BATIR
Joined: 20/06/2015 16:36:50
Messages: 155
Offline
|
Zdravo, zadacata od SPOJ - https://www.spoj.com/problems/SHPATH/ ja iskucav , ama kodot ne raboti. Kje moze celosna popravka okolu istiot:
Kod:
|
|
|
28/11/2018 22:05:41
|
petarsor
Joined: 15/07/2018 11:58:27
Messages: 87
Offline
|
Ај вака, мислам дека е најдобро ако те насочам само во добра насока, бидејќи за време на натпревари/испити/итн ќе немаш помош некој друг да го гледа/поправа кодот.
1. Програмата што ја имаш прикачено не се ни компајлира. Имаш некои грешки како на пример во линијата mapa<string,int> mapa[ns+1]; која треба да биде map<string,int> mapa; итн.
Тоа треба прво да поправиш
2. Потоа, имаш и други грешки, некои во однос на извршување на програмата, а некои грешки и со алгоритамот.
На пример, имаш вектор "s", и потоа читаш во s[i].first и s[i].second, но тој вектор (кога се прави) има големина 0, па неможеш да читаш во s[0].first на пример (елемент s[0] не постои). Можеш да додаваш со push_back на пример, или уште на почеток да го направиш со соодветна големина.
Има и грешки со алгоритамот Dijkstra. На пример, не треба да имаш vis[sosed]=true; во for циклусот каде што ги поминуваш соседите, бидејќи можеби ќе се открие некој друг (пократок) пат од некое друго теме подоцна.
3. Има и некои делови кои што не треба да ги правиш како на пример mapa[s[i]].first]-- (ова не се ни компајлира, бидејќи има повеќе знаци ']' од '[', но тука не треба ни да има --, бидејќи индексите ти почнуваат од 0, итн.
|
|
|
29/11/2018 20:13:37
|
BATIR
Joined: 20/06/2015 16:36:50
Messages: 155
Offline
|
Sega popraviv nesto , ama seushte ima greska kaj mapa[s]=idx, CE ima. Shto treba sega da popravam?
|
|
|
30/11/2018 16:53:06
|
VlatkoSh
Joined: 10/08/2016 12:39:15
Messages: 48
Offline
|
Dali go citas errorot?
Eve primer za mapa: http://www.cplusplus.com/reference/map/map/operator[]/
Ti vo svojot kod pravis array so ns+1 mapi. Imas napisano mapa[S]=idx kade S e string sto ne e mozno, bidejki mapa vo tvojot kod e array i mozes samo so broevi da go ineksiras. Smeni go redot map<string,int> mapa[ns+1] vo map<string,int> mapa;.
|
|
|
01/12/2018 00:38:35
|
petarsor
Joined: 15/07/2018 11:58:27
Messages: 87
Offline
|
Всушност, најголема грешка ти е што не го прочита мојот одговор соодветно.
Дури имав напишано точно што треба
која треба да биде map<string,int> mapa; итн.
Исто и при крајот каде што имаш пак s1[i]... Не можеш s1[i] бидејќи s1 иницијално има 0 елементи. Може s1.push_back(...)
|
|
|
01/12/2018 11:02:18
|
VlatkoSh
Joined: 10/08/2016 12:39:15
Messages: 48
Offline
|
Mislam deka odgovoruvas na gresniot covek
|
|
|
01/12/2018 13:03:08
|
petarsor
Joined: 15/07/2018 11:58:27
Messages: 87
Offline
|
VlatkoSh wrote:Mislam deka odgovoruvas na gresniot covek
Да да. На BATIR му/и пишував.
This message was edited 1 time. Last update was at 01/12/2018 13:04:32
|
|
|
|