정확히 어떻게 되는지는 모르겠고, 외워야겠다.

아래처럼하면 start에대한 내림차순으로 되다가 start가 같으면 value에 대한 내림차순으로 진행한다.

부등호 반대로 바꾸면 반대로 된다. 참고하자.

struct a {
	int start;
	int value;
};

struct cmp {
	bool operator()(a t, a u) {
		if (t.start == u.start) {
			return t.value < u.value;//value에 대해 내림차순임
		}
		else {
			return t.start > u.start;
		}
	}
};

priority_queue<a, vector<a>, cmp> pq;

+ Recent posts