답안 #836230

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
836230 2023-08-24T08:59:19 Z alvingogo Bitaro's travel (JOI23_travel) C++14
0 / 100
127 ms 5952 KB
#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
#define AquA cin.tie(0);ios_base::sync_with_stdio(0);
#define fs first
#define sc second
#define p_q priority_queue
#define int long long
using namespace std;

signed main(){
    AquA;
    int n;
    cin >> n;
    vector<int> v(n+2);
    for(int i=1;i<=n;i++){
        cin >> v[i];
    }
    const int inf=1e18;
    v[0]=-inf;
    v[n+1]=inf;
    int q;
    cin >> q;
    while(q--){
        int c;
        cin >> c;
        int p=lower_bound(v.begin(),v.end(),c)-v.begin();
        int l,r;
        int ans=0;
        if(c-v[p-1]<=v[p]-c){
            p--;
        }
        assert(p!=0 && p!=n+1);
        l=r=p;
        ans+=abs(c-v[p]);
        while(l!=1 || r!=n){
            if(abs(v[p]-v[l-1])<=abs(v[r+1]-v[p])){
                int a=1,b=l-1;
                while(b>a){
                    int m=(a+b+1)/2;
                    if(abs(v[m]-v[r+1])>=abs(v[m]-v[m-1])){
                        b=m-1;
                    }
                    else{
                        a=m;
                    }
                }
                ans+=abs(v[p]-v[a]);
                l=p=a;
            }
            else{
                int a=r+1,b=n;
                while(b>a){
                    int m=(a+b)/2;
                    if(abs(v[m]-v[l-1])>abs(v[m]-v[m+1])){
                        a=m+1;
                    }
                    else{
                        b=m;
                    }
                }
                ans+=abs(v[p]-v[a]);
                r=p=a;
            }
        }
        cout << ans << "\n";
    }
    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Incorrect 1 ms 332 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Incorrect 1 ms 332 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 117 ms 5540 KB Output is correct
8 Correct 116 ms 5468 KB Output is correct
9 Correct 127 ms 5512 KB Output is correct
10 Correct 127 ms 5492 KB Output is correct
11 Correct 123 ms 5500 KB Output is correct
12 Correct 114 ms 5632 KB Output is correct
13 Correct 33 ms 4172 KB Output is correct
14 Correct 25 ms 1500 KB Output is correct
15 Incorrect 104 ms 5952 KB Output isn't correct
16 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Incorrect 1 ms 332 KB Output isn't correct
4 Halted 0 ms 0 KB -