結果

提出番号 199
提出者 yakimeshi No.2
言語 C++
提出日時 2017-07-08 18:18:48
問題名 (11)いわゆる検索
結果 AC
点数 100%

テストケース

テストケース 結果 得点 実行時間 メモリ使用量
1 AC 100% 2ms 8320KB
2 AC 100% 3ms 8032KB
3 AC 100% 315ms 13984KB
4 AC 100% 519ms 13984KB
5 AC 100% 563ms 14000KB
6 AC 100% 324ms 13984KB
7 AC 100% 317ms 13984KB
8 AC 100% 494ms 14000KB
9 AC 100% 316ms 13984KB
10 AC 100% 491ms 13984KB
11 AC 100% 320ms 13984KB
12 AC 100% 479ms 13984KB
13 AC 100% 460ms 14000KB
14 AC 100% 334ms 13984KB
15 AC 100% 380ms 13984KB
16 AC 100% 477ms 14000KB
17 AC 100% 322ms 13968KB
18 AC 100% 320ms 13984KB
19 AC 100% 441ms 13984KB
20 AC 100% 318ms 13984KB

ソースコード

#include <iostream>
using namespace std;

long long n;
long long x;
long long q = 0;
long long A = 0;
long long B[500000];
 
 
long long con = 0;
long long s = 0;
long long t=0;

void search() {
	long long high = n;
	long long low = 0;
	long long mid = 0;
	for (;;) {
	    mid = (high + low) / 2;
		
		if (B[mid-1] < A && A< B[mid]) {
			cout<<n - mid<<endl;
			break;
		}
		if ( A ==B[mid]) {
			cout << n - mid << endl;
			break;
		}

		if (B[mid] > A) {
			high= mid;
			
		}
		if (B[mid] < A) {
	    low = mid+1;
			
		}

	}

}

int main() {
	cin >> n;
	for (long long i = 0; i < n; ++i) {
		cin >> x;
		B[i] = x;
	}


	t = n - 1;
	cin >> q;

	for (long long t = 0; t < q; ++t) {
		cin >> A;
		
		if (B[n - 1] < A) {
			cout << 0 << endl;	
			continue;
		}
		else {
			search();
			continue;
		}
		}
	
	return 0;
}