Pagini recente » Cod sursa (job #1349662) | Cod sursa (job #139046) | Cod sursa (job #971959) | Cod sursa (job #1393332) | Cod sursa (job #2970446)
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef vector<int> vi;
typedef pair<int, int> pi;
#define pb push_back
#define mp make_pair
#define f first
#define s second
struct Node {
string nume, prenume;
int varsta;
struct Node *next;
};
Node *r, *p, *u, *v;
void print(Node *h){
while(h){
cout << setw(12) << h->nume << ' '
<< setw(12) << h->prenume << ' '
<< setw(12) << h->varsta << '\n';
h = h->next;
}
}
void solve(){
int n;
cout << "n = ";
cin >> n;
if(!n){
cout << "Lista este vida\n";
return;
}
p = NULL;
cout << "Introduceti stiva:\n";
int maxe = 0;
for(int i = 0; i < n; i++){
r = new Node;
cin >> r->nume >> r->prenume >> r->varsta;
r->next = p;
p = r;
maxe = max(maxe, (int)r->nume.size());
}
u = r;
cout << "Avem lista:\n";
print(u);
int ind = 1;
while(r){
if(r->varsta % 2 == 0)
break;
ind++;
r = r->next;
}
cout << "Locul primului elev cu varsta para = " << ind << '\n';
cout << "Lungimea maxima a numelui = " << maxe << '\n';
cout << "Elevii cu nume de lungime maxima:\n";
r = u;
ind = 1;
while(r){
if(r->nume.size() == maxe){
//cout << ind << ' ';
cout << r->nume << ' ' << r->prenume << '\n';
}
ind++;
r = r->next;
}
cout << '\n';
for(r = u; r->next != NULL; r = r->next){
for(v = r->next; v; v = v->next){
if(v->varsta > r->varsta){
swap(v->varsta, r->varsta);
swap(v->nume, r->nume);
swap(v->prenume, r->prenume);
}
/* daca trebuie invers
if(v->nr < r->nr)
swap(v->nr, r->nr);*/
}
}
cout << "Lista sortata:\n";
print(u);
cout << "Varsta maxima = " << u->varsta << '\n';
int cnt = 0;
r = u;
while(r && r->varsta == u->varsta){
cnt++;
r = r->next;
}
cout << "Elevi cu varsta maxima = " << cnt << '\n';
}
int main(){
//ios::sync_with_stdio(0); cin.tie(0);
int t = 1;
//cin >> t;
while(t--){
solve();
}
}