본문 바로가기

카테고리 없음

백준 10815번

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;


int main() {

	vector<int> sang;
	vector<int> given;

	int sang_num=0;
	int given_num=0;
	int temp=0;

	cin.tie(0);
	ios_base::sync_with_stdio(false);
	

	cin >> sang_num;
	
	for (int i = 0; i < sang_num; i++) {
		cin >> temp;

		sang.push_back(temp);

	}

	sort(sang.begin(), sang.end());



	cin >> given_num;

	for (int i = 0; i < given_num; i++) {
	
		int num;
		cin >> num;

		bool cor = false;

		int  start = 0; int end = sang_num-1;

		


		while (start <= end) {
			int mid = (start + end) / 2;

			if (sang[mid] == num) {

				cor = true;
				break;


			}

			else if (sang[mid] < num) {

				
				start = mid + 1;

			}
			else {
				end = mid - 1;
			}

		}

		if (cor==true) {
			cout << 1<<" ";
		}

		else {
		
			cout << 0<<" ";
		}
	}

	



	
}

 

cin , cout은 상당히 느리다. 

ios_base::sync_with_stdio(false);을 사용하지 않으면 시간초과가  난다.

scanf, printf 같은 입출력 함수를 사용하는 것이 좋다.