結果
問題 |
No.1110 好きな歌
|
ユーザー |
![]() |
提出日時 | 2020-07-10 21:52:18 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,282 bytes |
コンパイル時間 | 1,599 ms |
コンパイル使用メモリ | 173,940 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-10-11 08:56:20 |
合計ジャッジ時間 | 6,890 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 WA * 2 |
other | AC * 24 WA * 27 |
ソースコード
#include <bits/stdc++.h> #define rep(X,N) for(ll X = 0LL; X < (N); X++) #define ALL(V) (V).begin(),(V).end() using namespace std; typedef long long ll; const double PI = 3.1415926535897932384626; const ll MODN = 1000000007; const ll MODN2 = 998244353; const double EPS = 1e-10; //ソート済みの関数と値を入力すると //値が存在するかのboolと値未満の個数(trueなら値のあるでもあるindex)を返す template<typename T> auto binsearch_idx(vector<T> &v, T val, ll size){ // leftがlessの右端のindex,rightがeq,greaterの左端のindex ll left = -1, right = size; while( abs(right - left) > 1) { ll mid = (left + right) / 2; if (v[mid] < val) left = mid; else right = mid; } // vにvalが存在するなら,{true, 左端のindex} // 存在しないなら,{false, val未満の個数} return (make_pair(v[right] == val, right)); } int main(){ int n, d; cin >> n >> d; vector<int> a(n); vector<int> v(n); rep(i, n){ cin >> a[i]; v[i] = a[i]; } sort(ALL(v)); rep(i, n){ int tmp = a[i] - d; pair<bool, int> p = binsearch_idx(v, tmp, n); cout << p.second << "\n"; } return 0; }