제출 #890822

#제출 시각아이디문제언어결과실행 시간메모리
890822vjudge1Bitaro's travel (JOI23_travel)C++17
15 / 100
114 ms10128 KiB
#include <bits/stdc++.h> #define int long long #define all(x) x.begin(),x.end() #define ff first #define ss second #define pb push_back using namespace std; signed main(){ ios_base::sync_with_stdio(); cin.tie(0); int n; cin>>n; set <int> st; for(int i=0;i<n;i++){ int x; cin>>x; st.insert(x); } int q; cin>>q; while(q--){ int x; cin>>x; int ans=0; int next=x; bool flag=0; auto it=st.lower_bound(x); if(it!=st.end() && *it==x)flag=1; if(!flag){ int mn=1e18; int cur=x; if(it!=st.begin()){ it--; mn=min(mn,abs(cur-*it)); next=*it; it++; } if(it!=st.end()){ if(abs(cur-*it)<mn){ mn=abs(cur-*it); next=*it; } } if(mn!=1e18)ans+=mn; } //cout<<ans<<" "<<next<<"\n"; while(!st.empty()){ //cout<<ans<<" "<<next<<"\n"; auto it=st.lower_bound(next); int mn=1e18; int cur=*it; if(it!=st.begin()){ it--; mn=min(mn,abs(cur-*it)); next=*it; it++; } it++; if(it!=st.end()){ if(abs(cur-*it)<mn){ mn=abs(cur-*it); next=*it; } } it--; if(mn!=1e18)ans+=mn; st.erase(it); } cout<<ans<<"\n"; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...