Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <sstream>
- using namespace std;
- struct Student
- {
- string ime, prezime;
- };
- int binarnaKraj(Student niz[], int maxGr, int vel, Student novi, int minGr=0)
- {
- if(minGr>maxGr)
- return -1;
- else
- {
- if(novi.ime[0] == niz[(minGr+maxGr)/2].ime[0] && novi.prezime == niz[(minGr+maxGr)/2].prezime)
- {
- if((minGr + maxGr)/2 != vel && niz[((minGr+maxGr)/2)+1].ime[0]== novi.ime[0] && novi.prezime == niz[((minGr+maxGr)/2)+1].prezime)
- return binarnaKraj(niz, maxGr+1,vel, novi, minGr);
- else
- return (minGr+maxGr)/2;
- }
- else if(novi.ime[0] < niz[(minGr+maxGr)/2].ime[0] && novi.prezime==niz[(minGr+maxGr)/2].prezime)
- {
- return binarnaKraj(niz, (minGr+maxGr)/2-1, vel,novi, minGr);
- }
- else
- {
- return binarnaKraj(niz, maxGr,vel, novi, (minGr+maxGr)/2+1);
- }
- }
- }
- int binarnaPocetak(Student niz[], int maxGr, Student novi, int minGr=0)
- {
- if(minGr>maxGr)
- return -1;
- else
- {
- if(novi.ime[0] == niz[(minGr+maxGr)/2].ime[0] && novi.prezime == niz[(minGr+maxGr)/2].prezime)
- {
- if((minGr + maxGr)/2 != 0 && niz[((minGr+maxGr)/2)-1].ime[0]== novi.ime[0] && novi.prezime == niz[((minGr+maxGr)/2)-1].prezime)
- return binarnaPocetak(niz, maxGr, novi, minGr-1);
- else
- return (minGr+maxGr)/2;
- }
- else if(novi.ime[0] < niz[(minGr+maxGr)/2].ime[0] && novi.prezime==niz[(minGr+maxGr)/2].prezime)
- {
- return binarnaPocetak(niz, (minGr+maxGr)/2-1, novi, minGr);
- }
- else
- {
- return binarnaPocetak(niz, maxGr, novi, (minGr+maxGr)/2+1);
- }
- }
- }
- std::string PrebaciUString(int N) {
- std::ostringstream tok;
- tok << N;
- return tok.str();
- }
- string dajEmail(Student studenti[], int brojStudenata, Student novi)
- {
- int ind1= binarnaKraj(studenti, brojStudenata, brojStudenata, novi);
- int ind2= binarnaPocetak(studenti, brojStudenata, novi);
- int broj=ind1-ind2+1;
- if(ind2==0)
- broj++;
- cout << ind1 << ind2;
- char s1=novi.ime[0];
- string s2=novi.prezime;
- string s3 = PrebaciUString(broj);
- string s="";
- s+=s1;
- s+=s2;
- s+=s3;
- return s;
- }
- int main()
- {
- Student niz[3]= {{"Ae", "aaa"}, {"Adela", "Vukas"},{"Adijata", "Vukas"}};
- cout << dajEmail(niz, 3 , {"Amela", "Vukas"});
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement