GPOS-Editorial

PROBLEM LINK:

Practice

Author: Hari Vege

DIFFICULTY:

Easy

PREREQUISITES:

Structures or pairs sorting

PROBLEM:

Sorting Structures or pairs based on different parameters.

EXPLANATION:

Just sort structure based on cgpa and year and print all 4 years $bK$b cgpa.

SOLUTIONS:

Setter's Solution
            #include<iostream> 
            #include<algorithm> 
            using namespace std; 
            struct Klu
            { 
            int id;      
            int year;   
            double gpa;  
            }; 
            bool comparison(Klu a, Klu b) 
            { 
                return (a.gpa > b.gpa); 
            } 
            void printkluScheduling(Klu arr[], int n,int y) 
            { 
                sort(arr, arr+n, comparison); 
                int result[5]={0};
                int ye[5]={0};
                bool slot[n];  
                for (int i=0; i<n; i++) 
                    slot[i] = false; 
                for (int i=0; i<n; i++) 
                { 
                ye[arr[i].year]++;
                if(ye[arr[i].year]==y)
                result[arr[i].year]=arr[i].id;
                } 
                for(int i=1;i<5;i++){
                    if(result[i]!=0)
                    cout<<result[i]<<" ";
                }
            } 
            int main() 
            {  int n,i,j,y,k;
            cin>>n;
            while(n--){
                /*Klu arr[] = { {170030673, 2, 9.6}, {170030675, 2, 9.1}, {170030676, 1, 2.7}, 
                            {170030677, 4, 2.5}, {170030678, 3, 1.5}}; */
                //int n = sizeof(arr)/sizeof(arr[0]); 
                cin>>i;
                Klu arr[i];
                for(j=0;j<i;j++){
                cin>>arr[j].id>>arr[j].year>>arr[j].gpa;}
                cin>>y;
                printkluScheduling(arr, i,y); 
                
            }
                return 0; 
            }