Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <algorithm>
- #include <iomanip>
- struct Student{
- char nume[100];
- std::vector<int> note;
- float medie;
- bool integralist;
- };
- float calcMedie(std::vector<int> note, int n){
- float medie;
- int suma = 0;
- for(unsigned int i = 0; i < n; i++){
- suma+=note[i];
- }
- medie = suma / n;
- return medie;
- }
- bool statut(std::vector<int> note, int n){
- bool status = true;
- for(unsigned int i = 0; i < n; i++){
- if(note[i] < 5){
- status = false;
- break;
- }
- }
- return status;
- }
- bool wayToSort(const Student &lhs, const Student &rhs){
- return lhs.medie > rhs.medie;
- }
- int main(){
- int m, n, p;
- int burseAcordate = 0;
- std::cin >> m >> n >> p;
- std::vector<Student> studenti(m);
- //fill students with marks and average
- for(unsigned int i = 0; i < m; i++){
- std::cin >> studenti[i].nume;
- for(unsigned int j = 0; j < n; j++){
- std::cin >> studenti[i].note[j];
- }
- studenti[i].medie = calcMedie(studenti[i].note, n);
- studenti[i].integralist = statut(studenti[i].note, n);
- }
- //sort by medie
- std::sort(studenti.begin(), studenti.end(), wayToSort);
- //give bursa to first p integralsiti
- for(unsigned int i = 0; i < m; i++){
- if(studenti[i].integralist && studenti[i].medie > 8.00 && p > 0){
- burseAcordate++;
- p--;
- if(p == 0){
- break;
- }
- }
- }
- std::cout << burseAcordate << std::endl;
- std::cout << studenti[0].nume << " " << std::fixed << std::setprecision(2) << studenti[0].medie;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement