結果

問題 No.1110 好きな歌
ユーザー Shun_PI
提出日時 2020-07-10 21:32:15
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 61 ms / 5,000 ms
コード長 1,116 bytes
コンパイル時間 1,806 ms
コンパイル使用メモリ 174,984 KB
実行使用メモリ 7,960 KB
最終ジャッジ日時 2024-10-11 07:59:33
合計ジャッジ時間 5,719 ms
ジャッジサーバーID
(参考情報)
judge5 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 51
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;
using lint = long long int;
using P = pair<int, int>;
using PL = pair<lint, lint>;
#define FOR(i, begin, end) for(int i=(begin),i##_end_=(end);i<i##_end_;i++)
#define IFOR(i, begin, end) for(int i=(end)-1,i##_begin_=(begin);i>=i##_begin_;i--)
#define REP(i, n) FOR(i,0,n)
#define IREP(i, n) IFOR(i,0,n)
#define ALL(a)  (a).begin(),(a).end()
constexpr int MOD = 1000000007;
constexpr int INF = 2147483647;
void yes(bool expr) {
  cout << (expr ? "Yes" : "No") << "\n";
}
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    lint N, D;
    cin >> N >> D;
    vector<PL> A(N);
    REP(i, N) {
        lint tmp;
        cin >> tmp;
        A[i] = make_pair(tmp, i);
    }
    sort(ALL(A), [](auto const &a, auto const &b) { return a.first > b.first; });
    lint lidx = 0;
    lint ridx = 0;
    vector<lint> ans(N);
    while(ridx < N) {
        if(A[lidx].first - A[ridx].first >= D) {
            ans[A[lidx].second] = N - ridx;
            lidx++;
        } else {
            ridx++;
        }
    }
    REP(i, N) cout << ans[i] << "\n";
}
0