답안 #796266

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
796266 2023-07-28T08:35:57 Z vjudge1 Bitaro's travel (JOI23_travel) C++17
0 / 100
31 ms 528 KB

// Author : حسن

#include <bits/stdc++.h>



using namespace std;

#define TL ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define rall(s) s.rbegin(),s.rend()
#define all(s) s.begin(),s.end()
#define pb push_back
#define fi first
#define se second
#define ll long long
#define ld long double
#define YES cout<<"YES\n"
#define Yes cout<<"Yes\n"
#define yes cout<<"yes\n"
#define NO cout<<"NO\n"
#define No cout<<"No\n"
#define no cout<<"no\n"


const int N = 1e6 + 9 , mod = 1e9 + 7;
ll c[N] = {} , d[N] = {} , a[N] = {}, b[N] = {} , dp[N][3];

void solve(){
    ll q , i , j , m , n , z , s  = 0, f, l , r , k , x , y , mn  = 1e18 , mx = 0;
    cin>>n;
    for(i = 1; i <= n; i++){
        cin>>a[i];
    }
    sort(a + 1, a + n + 1);
    a[0] = -1e18;
    a[n + 1] = 1e18;
    cin>>q;
    while(q--){
        cin>>k;
        l = 0 , r = n + 1;
        while(l + 1 < r){
            m = (l + r) / 2;
            if(a[m] <= k)
                l = m;
            else
                r = m;
        }
        x = r;
        if(k - a[l] <= a[r]-  k) x = l;
        s = abs(a[x] - k) + a[n] - a[1];
        ll l1 = x - 1, r1 = x + 1;
        while(l1 > 0 && r1 <= n){
            if(a[x] - a[l1] <= a[r1] - a[x]){
                l = 0 , r = l1;
                while(l + 1 < r){
                    m = (l + r) / 2;
                    if(a[x] - a[m] <= a[r1] - a[x])
                        r = m;
                    else
                        l = m;
                }
                s += a[x] - a[r];
                x = r;
                l1 = r - 1;
            }else {
                l = r1 , r = n + 1;
                while(l + 1 < r){
                    m = (l + r) / 2;
                    if(a[x] - a[l1] > a[m] - a[x])
                        l = m;
                    else
                        r = m;
                }
                s += a[l] - a[x];
                x = l;
                r1 = l + 1;
            }
        }
        cout<<s<<"\n";
    }

}

int main(){

     TL;

     #ifndef HOME
     freopen("input.txt", "r", stdin);
     freopen("output.txt", "w", stdout);
     #endif

int t = 1;
//cin>>t;

while(t--)
     {
     solve();
     }

}
// Author : حسن

Compilation message

travel.cpp: In function 'void solve()':
travel.cpp:31:16: warning: unused variable 'j' [-Wunused-variable]
   31 |     ll q , i , j , m , n , z , s  = 0, f, l , r , k , x , y , mn  = 1e18 , mx = 0;
      |                ^
travel.cpp:31:28: warning: unused variable 'z' [-Wunused-variable]
   31 |     ll q , i , j , m , n , z , s  = 0, f, l , r , k , x , y , mn  = 1e18 , mx = 0;
      |                            ^
travel.cpp:31:40: warning: unused variable 'f' [-Wunused-variable]
   31 |     ll q , i , j , m , n , z , s  = 0, f, l , r , k , x , y , mn  = 1e18 , mx = 0;
      |                                        ^
travel.cpp:31:59: warning: unused variable 'y' [-Wunused-variable]
   31 |     ll q , i , j , m , n , z , s  = 0, f, l , r , k , x , y , mn  = 1e18 , mx = 0;
      |                                                           ^
travel.cpp:31:63: warning: unused variable 'mn' [-Wunused-variable]
   31 |     ll q , i , j , m , n , z , s  = 0, f, l , r , k , x , y , mn  = 1e18 , mx = 0;
      |                                                               ^~
travel.cpp:31:76: warning: unused variable 'mx' [-Wunused-variable]
   31 |     ll q , i , j , m , n , z , s  = 0, f, l , r , k , x , y , mn  = 1e18 , mx = 0;
      |                                                                            ^~
travel.cpp: In function 'int main()':
travel.cpp:91:13: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   91 |      freopen("input.txt", "r", stdin);
      |      ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
travel.cpp:92:13: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   92 |      freopen("output.txt", "w", stdout);
      |      ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Runtime error 30 ms 516 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 30 ms 516 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 31 ms 528 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 30 ms 516 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -