[CodeUp] #4791-사냥꾼(탐색기반설계)

chrmqgozj·2022년 1월 28일
0

CodeUp

목록 보기
36/48
#include <iostream>
#include <vector>
#include <algorithm>
#include <cstdlib>
using namespace std;

vector<int> hunter;
vector<vector<int>> animal;

int hunter_compare(int a, int b){
	return a<b;
}

int animal_compare(vector<int> v1, vector<int> v2){
	if(v1[0]==v2[0]){
		return v1[1] < v2[1];
	}
	return v1[0] < v2[0];
}

int main(){
	int m,n,l;
	cin >> m >> n >> l;
	
	hunter.resize(m,0);
	animal.resize(n,vector<int>(2,0));
	
	for(int i=0;i<m;i++){
		cin >> hunter[i];
	}
	for(int i=0;i<n;i++){
		cin >> animal[i][0] >> animal[i][1];
	}
	
	sort(hunter.begin(),hunter.end(),hunter_compare);
	sort(animal.begin(),animal.end(),animal_compare);
	
	int cnt = 0;
	int index = 0;
	for(int i=0;i<n;i++){
		int x = animal[i][0];
		int y = animal[i][1];
		
	
		while(index< m && hunter[index] < x){
			index++;
		}
		if(index>0 && abs(hunter[index-1]-x)+y <= l){
			cnt++;
			continue;	
		}
		if(index < m && abs(hunter[index]-x)+y <= l){
			cnt++;
		}

		
	}
	
	cout << cnt;
	
}

0개의 댓글

관련 채용 정보