#758
Se consideră un arbore binar în care nodurile memorează numere naturale nenule. Să se determine cele mai mici valori număr prim din subarborii stâng și drept ai rădăcinii.
Problema | BiMinPrim | Operații I/O |
![]() biminprim.in /biminprim.out
|
---|---|---|---|
Limita timp | 0.1 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
Id soluție | #57448539 | Utilizator | |
Fișier | biminprim.cpp | Dimensiune | 1.37 KB |
Data încărcării | 31 Martie 2025, 20:28 | Scor / rezultat | Eroare de compilare |
biminprim.cpp:1:25: warning: extra tokens at end of #include directive [enabled by default] #include<bits/stdc++.h> using namespace std; ifstream fin("biminprim.in");ofstream fout("biminprim.out");struct nod{int val;int h;nod *st;nod *dr;};int ult;int nr;int k;nod * radacina;long long int s;vector<int> n;vector<nod *> st;nod * create_nod(int k){nod * aux = new nod;aux->val = n[k];aux->h = 0;aux->st = nullptr;aux->dr = nullptr;return aux;}void build(){for(int i=1; i<k; i++){while(!st.empty() && st.back()->st != nullptr && st.back()->dr != nullptr){st.pop_back();}if(!st.empty()){if(st.back()->st == nullptr){st.back()->st = create_nod(i);st.back()->st->h = st.back()->h + 1;if(st.back()->st->val != 0)st.push_back(st.back()->st);}else if(st.back()->dr == nullptr){st.back()->dr = create_nod(i);st.back()->dr->h = st.back()->h + 1;if(st.back()->dr->val != 0)st.push_back(st.back()->dr);}}}}bool prim(int x){int nrd = 0;for(int i = 1; i*i <= x; i++){if(x % i == 0){nrd++;if(i != x/i) nrd++;}}if(nrd == 2) return 1;return 0;}int p;bool exista;void parcurgere(nod * p_nod){if(p_nod == NULL) return ;if(prim(p_nod->val)) p = min(p,p_nod->val), exista = 1;parcurgere(p_nod->st);parcurgere(p_nod->dr);}int main(){while(fin >> nr){n.push_back(nr);++k;}radacina = create_nod(0);st.push_back(radacina);build();p = 2e9;exista = 0;parcurgere(radacina->st);if(exista)fout << p << " ";else fout << "-1 ";p = 2e9;exista = 0;parcurgere(radacina->dr);if(exista)fout << p << " ";else fout << "-1 ";return 0;} ^ biminprim.cpp:1:851: warning: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wliteral-suffix] #include<bits/stdc++.h> using namespace std; ifstream fin("biminprim.in");ofstream fout("biminprim.out");struct nod{int val;int h;nod *st;nod *dr;};int ult;int nr;int k;nod * radacina;long long int s;vector<int> n;vector<nod *> st;nod * create_nod(int k){nod * aux = new nod;aux->val = n[k];aux->h = 0;aux->st = nullptr;aux->dr = nullptr;return aux;}void build(){for(int i=1; i<k; i++){while(!st.empty() && st.back()->st != nullptr && st.back()->dr != nullptr){st.pop_back();}if(!st.empty()){if(st.back()->st == nullptr){st.back()->st = create_nod(i);st.back()->st->h = st.back()->h + 1;if(st.back()->st->val != 0)st.push_back(st.back()->st);}else if(st.back()->dr == nullptr){st.back()->dr = create_nod(i);st.back()->dr->h = st.back()->h + 1;if(st.back()->dr->val != 0)st.push_back(st.back()->dr);}}}}bool prim(int x){int nrd = 0;for(int i = 1; i*i <= x; i++){if(x % i == 0){nrd++;if(i != x/i) nrd++;}}if(nrd == 2) return 1;return 0;}int p;bool exista;void parcurgere(nod * p_nod){if(p_nod == NULL) return ;if(prim(p_nod->val)) p = min(p,p_nod->val), exista = 1;parcurgere(p_nod->st);parcurgere(p_nod->dr);}int main(){while(fin >> nr){n.push_back(nr);++k;}radacina = create_nod(0);st.push_back(radacina);build();p = 2e9;exista = 0;parcurgere(radacina->st);if(exista)fout << p << " ";else fout << "-1 ";p = 2e9;exista = 0;parcurgere(radacina->dr);if(exista)fout << p << " ";else fout << "-1 ";return 0;} ^ biminprim.cpp:1:1273: warning: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wliteral-suffix] #include<bits/stdc++.h> using namespace std; ifstream fin("biminprim.in");ofstream fout("biminprim.out");struct nod{int val;int h;nod *st;nod *dr;};int ult;int nr;int k;nod * radacina;long long int s;vector<int> n;vector<nod *> st;nod * create_nod(int k){nod * aux = new nod;aux->val = n[k];aux->h = 0;aux->st = nullptr;aux->dr = nullptr;return aux;}void build(){for(int i=1; i<k; i++){while(!st.empty() && st.back()->st != nullptr && st.back()->dr != nullptr){st.pop_back();}if(!st.empty()){if(st.back()->st == nullptr){st.back()->st = create_nod(i);st.back()->st->h = st.back()->h + 1;if(st.back()->st->val != 0)st.push_back(st.back()->st);}else if(st.back()->dr == nullptr){st.back()->dr = create_nod(i);st.back()->dr->h = st.back()->h + 1;if(st.back()->dr->val != 0)st.push_back(st.back()->dr);}}}}bool prim(int x){int nrd = 0;for(int i = 1; i*i <= x; i++){if(x % i == 0){nrd++;if(i != x/i) nrd++;}}if(nrd == 2) return 1;return 0;}int p;bool exista;void parcurgere(nod * p_nod){if(p_nod == NULL) return ;if(prim(p_nod->val)) p = min(p,p_nod->val), exista = 1;parcurgere(p_nod->st);parcurgere(p_nod->dr);}int main(){while(fin >> nr){n.push_back(nr);++k;}radacina = create_nod(0);st.push_back(radacina);build();p = 2e9;exista = 0;parcurgere(radacina->st);if(exista)fout << p << " ";else fout << "-1 ";p = 2e9;exista = 0;parcurgere(radacina->dr);if(exista)fout << p << " ";else fout << "-1 ";return 0;} ^ /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 0 has invalid symbol index 11 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 1 has invalid symbol index 12 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 2 has invalid symbol index 2 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 3 has invalid symbol index 2 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 4 has invalid symbol index 11 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 5 has invalid symbol index 13 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 6 has invalid symbol index 13 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 7 has invalid symbol index 13 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 8 has invalid symbol index 12 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 9 has invalid symbol index 13 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 10 has invalid symbol index 13 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 11 has invalid symbol index 13 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 12 has invalid symbol index 13 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 13 has invalid symbol index 13 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 14 has invalid symbol index 13 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 15 has invalid symbol index 13 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 16 has invalid symbol index 13 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 17 has invalid symbol index 13 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 18 has invalid symbol index 13 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 19 has invalid symbol index 13 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 20 has invalid symbol index 13 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 21 has invalid symbol index 22 /usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_line): relocation 0 has invalid symbol index 2 /usr/lib/gcc/i686-linux-gnu/4.8/../../../i386-linux-gnu/crt1.o: In function \`_start': (.text+0x18): undefined reference to \`main' collect2: error: ld returned 1 exit status
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema BiMinPrim 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ă.