Submission #891565

#TimeUsernameProblemLanguageResultExecution timeMemory
891565vjudge1Bitaro's travel (JOI23_travel)C++17
100 / 100
415 ms8020 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> #pragma GCC target("avx,avx2,fma") #pragma GCC optimize("Ofast,unroll-loops") #define pii pair<int,int> using namespace __gnu_pbds; using namespace std; #define pb push_back #define all(x) x.begin(),x.end() #define rall(x) x.rbegin(),x.rend() #define int long long #define f first #define s second #define pii pair<int,int> template<class T>bool umax(T &a,T b){if(a<b){a=b;return true;}return false;} template<class T>bool umin(T &a,T b){if(b<a){a=b;return true;}return false;} typedef tree<int, null_type, less_equal<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set; const int mod= 1e9 +7; const int N=1e5*4; int binpow (int a, int n) { if (n == 0) return 1; if (n % 2 == 1) return binpow (a, n-1) * a; else { int b = binpow (a, n/2); return b * b; } } void solve(){ int n,m,k; cin>>n; vector<int>v(n); for(auto &to:v)cin>>to; int q; cin>>q; while(q--){ int pos; cin>>pos; int l = lower_bound(all(v),pos) - v.begin(); int r = l; int ans = 0; while(1){ if(l == 0){ ans += abs(v[n-1] - pos); break; } if(r == n){ ans += abs(pos - v[0]); break; } if(pos - v[l-1] <= v[r] - pos){ int i = lower_bound(all(v), 2*pos-v[r]) - v.begin(); ans += pos-v[i]; pos = v[i]; l = i; } else{ int i = lower_bound(all(v), 2*pos - v[l-1]) - v.begin() - 1; ans += v[i]-pos; pos = v[i]; r = i+1; } } cout<<ans<<"\n"; } } signed main() { // freopen("seq.in", "r", stdin); // freopen("seq.out", "w", stdout); ios_base::sync_with_stdio(0);cin.tie(NULL);cout.tie(NULL); int tt=1;//cin>>tt; while(tt--)solve(); }

Compilation message (stderr)

travel.cpp: In function 'void solve()':
travel.cpp:36:8: warning: unused variable 'm' [-Wunused-variable]
   36 |  int n,m,k;
      |        ^
travel.cpp:36:10: warning: unused variable 'k' [-Wunused-variable]
   36 |  int n,m,k;
      |          ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...