結果
問題 |
No.1332 Range Nearest Query
|
ユーザー |
![]() |
提出日時 | 2020-10-30 03:31:35 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,498 bytes |
コンパイル時間 | 1,966 ms |
コンパイル使用メモリ | 180,472 KB |
実行使用メモリ | 13,864 KB |
最終ジャッジ日時 | 2024-07-22 10:34:53 |
合計ジャッジ時間 | 8,532 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 6 TLE * 1 -- * 41 |
ソースコード
#include<bits/stdc++.h> //using namespace std; #pragma GCC target("avx") #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") #define rep(i,j,n) for(ll i=(ll)(j);i<(ll)(n);i++) #define REP(i,j,n) for(ll i=(ll)(j);i<=(ll)(n);i++) #define per(i,j,n) for(ll i=(ll)(j);(ll)(n)<=i;i--) #define ll long long #define ALL(a) (a).begin(),(a).end() #define pb emplace_back #define mp std::make_pair // #define endl "\n" //using std::endl; using std::cin; using std::cout; using std::vector; using std::string; using std::upper_bound; using std::lower_bound; using vi=vector<ll>; using vii=vector<vi>; using pii=std::pair<ll,ll>; int main(){ std::ios::sync_with_stdio(false); std::cin.tie(nullptr); int N; cin>>N; vector<int> X(N); rep(i,0,N) cin>>X[i]; vector<std::pair<int,int>> data(N); rep(i,0,N) data[i]=mp(X[i],i); sort(ALL(data)); int Q; cin>>Q; while(Q--){ int l,r,x; cin>>l>>r>>x; l--,r--; int ans=1e9; int ind=lower_bound(ALL(data),mp(x,0))-data.begin(); rep(i,ind,N){ if(l<=data[i].second&&data[i].second<=r){ ans=std::min(ans,data[i].first-x); break; } } per(i,ind-1,0){ if(l<=data[i].second&&data[i].second<=r){ ans=std::min(ans,x-data[i].first); break; } } cout<<ans<<endl; } }