L - 土拨鼠掷鼬鼠(二分查找)
生活随笔
收集整理的這篇文章主要介紹了
L - 土拨鼠掷鼬鼠(二分查找)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Description
神奇的土撥鼠今天又很乖的皮的玩起了鼬鼠,今天依舊是擲鼬鼠。土撥鼠忘記了自己家周圍有著 nnn 圈的著火帶。已知距離土撥鼠 r[i] (1?i?n)的位置處有一圈著火地帶?,F在土撥鼠有 m 次投擲,告訴你它投擲的距離 L[i] (1?i?m),問你當前投擲的鼬鼠會不會解脫 gg 掉,也就是落在著火地帶上(當前僅當 L[i] == )(1?j?n) 時,我們認為鼬鼠落在了著火帶上)。
Input
第一行是以空格分隔的兩個整數 n, m。n 表示著火帶的圈數,m 表示投擲的次數。
接下來一行 n個整數 r[i],表示距離土撥鼠家 r[i] 的位置處有一圈著火帶。
接下來 m 行,每行一個整數 L[i],表示土撥鼠投擲的距離。
(1?n,m?1e5)
(1?r[i],L[i]?1e9)
Output
輸出有 m 行,每行對于每次詢問,如果鼬鼠會落在著火帶上輸出 GG!,否則輸出 The world is so beautiful~。
Sample
Input
Output
The world is so beautiful~ GG! The world is so beautiful~ The world is so beautiful~ GG! #include<bits/stdc++.h> using namespace std; const int N = 1e5 + 10; int a[1000010];int bin_search(int l, int r, int k) {int mid;while(l <= r){mid = (l + r) / 2;if(a[mid] == k)return 1;else if(a[mid] > k)r = mid - 1;elsel = mid +1;}return 0; } int main() {ios::sync_with_stdio(0);int n, m;cin >> n >> m;for(int i = 0; i < n; i++)cin >> a[i];sort(a, a + n);while(m--){int k;cin >> k;int flag;flag = bin_search(0, n - 1, k);if(flag)cout << "GG!" << endl;elsecout << "The world is so beautiful~" << endl;}return 0; }總結
以上是生活随笔為你收集整理的L - 土拨鼠掷鼬鼠(二分查找)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: K - TimesIsMoney(查询)
- 下一篇: A - 数据结构实验之排序一:一趟快排