1094 a sort problem
This commit is contained in:
parent
f455d54fe0
commit
2df78dec1d
47
1094-20231203-pass/main.cpp
Normal file
47
1094-20231203-pass/main.cpp
Normal file
@ -0,0 +1,47 @@
|
||||
#include<stdcpp.h>
|
||||
using namespace std;
|
||||
class Solution {
|
||||
public:
|
||||
bool carPooling(vector<vector<int>>& trips, int capacity) {
|
||||
int len = trips.size();
|
||||
struct op{
|
||||
bool tp;
|
||||
int people;
|
||||
int station;
|
||||
};
|
||||
vector<op> ops(trips.size()*2+10);
|
||||
for(int i = 0 ; i < trips.size() ;i++){
|
||||
op in = {true,trips[i][0],trips[i][1]};
|
||||
op out = {false,trips[i][0],trips[i][2]};
|
||||
ops[i*2] = in;
|
||||
ops[i*2+1] = out;
|
||||
}
|
||||
sort(ops.begin(), ops.end(), [](const op a, const op& b){
|
||||
return a.station<b.station||(a.station == b.station && a.tp < b.tp);
|
||||
});
|
||||
int peo = 0;
|
||||
for(int i = 0 ; i < ops.size() ; i++){
|
||||
if(!ops[i].tp){
|
||||
peo-=ops[i].people;
|
||||
}
|
||||
if(ops[i].tp){
|
||||
peo+=ops[i].people;
|
||||
if(peo>capacity)
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
int main(){
|
||||
Solution sol;
|
||||
vector<int> sta1 = {2,1,5};
|
||||
vector<int> sta2 = {3,3,7};
|
||||
vector<vector<int> >ex1 = {sta1,sta2};
|
||||
cout<<sol.carPooling(ex1, 4)<<endl;
|
||||
cout<<sol.carPooling(ex1, 5)<<endl;
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user