結果

提出番号 126
提出者 kotamanegi
言語 C++
提出日時 2017-06-19 23:06:01
問題名 (11)いわゆる検索
結果 AC
点数 100%

テストケース

テストケース 結果 得点 実行時間 メモリ使用量
1 AC 100% 65ms 8112KB
2 AC 100% 109ms 8176KB
3 AC 100% 527ms 21072KB
4 AC 100% 490ms 21088KB
5 AC 100% 309ms 21072KB
6 AC 100% 455ms 21056KB
7 AC 100% 346ms 21072KB
8 AC 100% 384ms 21056KB
9 AC 100% 617ms 21056KB
10 AC 100% 511ms 21072KB
11 AC 100% 307ms 21072KB
12 AC 100% 312ms 21088KB
13 AC 100% 552ms 21072KB
14 AC 100% 316ms 21072KB
15 AC 100% 484ms 21088KB
16 AC 100% 312ms 21072KB
17 AC 100% 499ms 21072KB
18 AC 100% 479ms 21072KB
19 AC 100% 427ms 21072KB
20 AC 100% 372ms 21088KB

ソースコード

#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <algorithm>
#include <utility>
#include <functional>
#include <cstring>
#include <queue>
#include <stack>
#include <math.h>
#include <iterator>
#include <vector>
#include <string>
#include <set>
#include <math.h>
#include <iostream> 
#include <random>
#include<map>
#include <iomanip>
#include <time.h>
#include <stdlib.h>
#include <list>
#include <typeinfo>
#include <list>
#include <set>
using namespace std;
#define eps 0.000000001
#define LONG_INF 10000000000000000
#define GOLD 1.61803398874989484820458
#define MAX_MOD 1000000007
#define REP(i,n) for(long long i = 0;i < n;++i)
int main() {
	long long n;
	cin >> n;
	vector<long long> a;
	REP(i, n) {
		long long hoge;
		cin >> hoge;
		a.push_back(hoge);
	}
	a.push_back(2000000000);
	int q;
	cin >> q;
	for (int i = 0;i < q;++i) {
		long long A;
		cin >> A;
		long long top = a.size() - 1;
		long long bot = 0;
		while (top - bot > 1) {
			long long mid = (top + bot) / 2;
			if (a[mid] >= A) {
				top = mid;
			}
			else {
				bot = mid;
			}
		}
		if (a[bot] >= A) {
			cout << a.size() - bot - 1 << endl;
		}
		else {
			cout << a.size() - top - 1 << endl;
		}
	}
	return 0;
}