입력 한개는 index

다른 입력으로 작은 걸 찾는 그리디 문제

#include <iostream>
#include <vector>
using namespace std;

int main() {
	int testcase;
	cin >> testcase;
	if (testcase < 1 || testcase>20) {
		exit(0);
	}
	int *result = new int[testcase+1];

	for (int i = 0; i < testcase; i++) {
		int pnum;
		cin >> pnum;
		if (pnum < 1 || pnum>100000) {
			exit(0);
		}
		int *people = new int[pnum+1];
		for (int j = 0; j < pnum; j++) {
			int a, b;
			cin >> a >> b;
			if (a<1 || a > 100000 || b<1 || b > 100000) {
				exit(0);
			}
			people[a] = b;
		}

		int counter = 0;
		int selector = 0;
		for (int j = 1; j <= pnum; j++) {
			if (j == 1) {
				counter++;
				selector = people[j];
				continue;
			}
			if (people[j] < selector) {
				counter++;
				selector = people[j];
			}
		}
		result[i] = counter;
	}
	for (int i = 0; i < testcase; i++) {
		cout << result[i] << endl;
	}
}

'컴퓨터 > 문제 풀기' 카테고리의 다른 글

백준 8595번 히든넘버  (0) 2019.05.27
백준 4948번 베르트랑 공준  (0) 2019.05.20
백준 16955번 오목, 이길 수 있을까?  (0) 2019.05.20
10799번 쇠막대기  (0) 2019.05.13
2413번 비슷한 순열  (1) 2019.05.13

+ Recent posts