結果
問題 |
No.2803 Bocching Star
|
ユーザー |
![]() |
提出日時 | 2024-07-19 22:15:24 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 337 ms / 2,000 ms |
コード長 | 750 bytes |
コンパイル時間 | 1,181 ms |
コンパイル使用メモリ | 91,252 KB |
最終ジャッジ日時 | 2025-02-23 16:38:31 |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 35 |
ソースコード
#include<iostream> #include<vector> #include<algorithm> #include<map> using namespace std; int main() { int n,s; cin >> n >> s; if(n==1){ cout << 1 << endl; cout << 1 << endl; return 0; } vector<int>a(n); for(int i=0;i<n;i++)cin >> a[i]; vector<int>b=a; sort(a.begin(),a.end()); vector<bool>ans(n,false); if(a[1]-a[0]<=s)ans[0]=true; if(a[n-1]-a[n-2]<=s)ans[n-1]=true; for(int i=1;i<n-1;i++)if(a[i]-a[i-1]<=s || a[i+1]-a[i]<=s)ans[i]=true; map<int,bool>dict; for(int i=0;i<n;i++){ if(ans[i])dict[a[i]]=true; else dict[a[i]]=false; } int cnt=0; for(int i=0;i<n;i++)if(dict[b[i]]==false)cnt++; cout << cnt << endl; for(int i=0;i<n;i++)if(dict[b[i]]==false)cout << i+1 << " "; cout << endl; }