Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- unsigned long long int n, p, i;
- char c;
- struct Doi
- {
- char prenume[260], nume[260];
- unsigned long long int salariu, varsta;
- char functie[260], numar[260], email[260];
- } v[100];
- bool cmp1(Doi a, Doi b)
- {
- if(strcmp(a.prenume, b.prenume)!=0)
- return strcmp(a.prenume, b.prenume)<0;
- }
- bool cmp2(Doi a, Doi b)
- {
- if(strcmp(a.nume, b.nume)!=0)
- return strcmp(a.nume, b.nume)<0;
- }
- bool cmp3(Doi a, Doi b)
- {
- if(a.salariu!=b.salariu)
- return a.salariu<b.salariu;
- }
- bool cmp4(Doi a, Doi b)
- {
- if(a.varsta!=b.varsta)
- return a.varsta<b.varsta;
- }
- bool cmp5(Doi a, Doi b)
- {
- if(strcmp(a.functie, b.functie)!=0)
- return strcmp(a.functie, b.functie)<0;
- }
- bool cmp6(Doi a, Doi b)
- {
- if(strcmp(a.numar, b.numar)!=0)
- return strcmp(a.numar, b.numar)<0;
- }
- bool cmp7(Doi a, Doi b)
- {
- if(strcmp(a.email, b.email)!=0)
- return strcmp(a.email, b.email)<0;
- }
- bool cmp8(Doi a, Doi b)
- {
- if(strcmp(a.prenume, b.prenume)!=0)
- return strcmp(a.prenume, b.prenume)>0;
- }
- bool cmp9(Doi a, Doi b)
- {
- if(strcmp(a.nume, b.nume)!=0)
- return strcmp(a.nume, b.nume)>0;
- }
- bool cmp10(Doi a, Doi b)
- {
- if(a.salariu!=b.salariu)
- return a.salariu>b.salariu;
- }
- bool cmp11(Doi a, Doi b)
- {
- if(a.varsta!=b.varsta)
- return a.varsta>b.varsta;
- }
- bool cmp12(Doi a, Doi b)
- {
- if(strcmp(a.functie, b.functie)!=0)
- return strcmp(a.functie, b.functie)>0;
- }
- bool cmp13(Doi a, Doi b)
- {
- if(strcmp(a.numar, b.numar)!=0)
- return strcmp(a.numar, b.numar)>0;
- }
- bool cmp14(Doi a, Doi b)
- {
- if(strcmp(a.email, b.email)!=0)
- return strcmp(a.email, b.email)>0;
- }
- int main()
- {
- cin>>n;
- for(i=1; i<=n; i++)
- cin>>v[i].prenume>>v[i].nume>>v[i].salariu>>v[i].varsta>>v[i].functie>>v[i].numar>>v[i].email;
- cin>>p>>c;
- if(p==1)
- if(c=='+')
- stable_sort(v+1, v+n+1, cmp1);
- else
- stable_sort(v+1, v+n+1, cmp8);
- else if(p==2)
- if(c=='+')
- stable_sort(v+1, v+n+1, cmp2);
- else
- stable_sort(v+1, v+n+1, cmp9);
- else if(p==3)
- if(c=='+')
- stable_sort(v+1, v+n+1, cmp3);
- else
- stable_sort(v+1, v+n+1, cmp10);
- else if(p==4)
- if(c=='+')
- stable_sort(v+1, v+n+1, cmp4);
- else
- stable_sort(v+1, v+n+1, cmp11);
- else if(p==5)
- if(c=='+')
- stable_sort(v+1, v+n+1, cmp5);
- else
- stable_sort(v+1, v+n+1, cmp12);
- else if(p==6)
- if(c=='+')
- stable_sort(v+1, v+n+1, cmp6);
- else
- stable_sort(v+1, v+n+1, cmp13);
- else if(p==7)
- if(c=='+')
- stable_sort(v+1, v+n+1, cmp7);
- else
- stable_sort(v+1, v+n+1, cmp14);
- for(i=1; i<=n; i++)
- cout<<v[i].prenume<<' '<<v[i].nume<<' '<<v[i].salariu<<' '<<v[i].varsta<<' '<<v[i].functie<<' '<<v[i].numar<<' '<<v[i].email<<'\n';
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement