class Pair {
int start;
int end;
Pair(int start, int end) {
this.start = start;
this.end = end;
}
}
class Solution
{
//Function to find the maximum number of meetings that can
//be performed in a meeting room.
public static int maxMeetings(int start[], int end[], int n)
{
// add your code here
ArrayList<Pair> meetings = new ArrayList<>();
for(int i=0; i<start.length; i++) {
Pair temp = new Pair(start[i], end[i]);
meetings.add(temp);
}
// sort;
Collections.sort(meetings, new Comparator<Pair>() {
public int compare(Pair o1, Pair o2){
if (o1.end < o2.end)
return -1;
else if (o1.end > o2.end) // 1 -> swap
return 1;
return 0;
}
});
int answer=1;
int preed = meetings.get(0).end;
for(int i=1; i<meetings.size(); i++){
Pair temp = meetings.get(i);
int st = temp.start;
if(st > preed){
answer++;
preed=temp.end;
}
}
return answer;
}
}
#include <bits/stdc++.h>
using namespace std;
void maxMeetings(int *, int *, int);
int main() {
int t;
cin >> t;
while (t--) {
int n;
cin >> n;
int start[n], end[n];
for (int i = 0; i < n; i++) cin >> start[i];
for (int i = 0; i < n; i++) cin >> end[i];
maxMeetings(start, end, n);
cout << endl;
}
return 0;
}// } Driver Code Ends
void maxMeetings(int start[], int end[], int n) {
priority_queue <pair<int,pair<int,int>>, vector<pair<int,pair<int,int>>>, greater<pair<int,pair<int,int>>>> v;
vector<pair<int,pair<int,int>>> ans;
for(int i=0;i<n;i++){
v.push({end[i],{i+1,start[i]}});
}
ans.push_back({v.top().first,{v.top().second.first,v.top().second.second}});
v.pop();
for(int i=1;i<n;i++){
if(v.top().second.second>ans[ans.size()-1].first)
ans.push_back({v.top().first,{v.top().second.first,v.top().second.second}});
v.pop();
}
for(int i=0;i<ans.size();i++)
cout<<ans[i].second.first<<" ";
}
class Pair:
def __init__(self, start, end):
self.start = start
self.end = end
def max_meetings(start, end, n):
meetings = []
for i in range(n):
temp = Pair(start[i], end[i])
meetings.append(temp)
# sort
meetings.sort(key=lambda x: x.end)
answer = 1
preed = meetings[0].end
for i in range(1, len(meetings)):
temp = meetings[i]
st = temp.start
if st > preed:
answer += 1
preed = temp.end
return answer