提出 #70612724


ソースコード 拡げる

#include <algorithm>
#include <array>
#include <bitset>
#include <cassert>
#include <chrono>
#include <climits>
#include <cmath>
#include <complex>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <deque>
#include <exception>
#include <fstream>
#include <functional>
#include <iomanip>
#include <iostream>
#include <iterator>
#include <limits>
#include <list>
#include <map>
#include <memory>
#include <new>
#include <numeric>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <stdexcept>
#include <streambuf>
#include <string>
#include <tuple>
#include <typeinfo>
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <vector>

using ll = long long;
using ld = long double;
using namespace std;
#define endl "\n";
#define ff first
#define ss second

#define forn(i,n) for(int i=0;i<n;i++)
#define dbgv(v) cout<<#v<<" "<<v<<endl
#define dbga(a,n) forn(i,n-1) {cout<<a[i]<<' ';} cout<<a[n-1]<<'\n';
#define all(v) (v).begin(), (v).end()


const ll N = 1e6 + 5, mod = 1e9 + 7;
ll fact[N], modinv[N];

ll fastpow(ll n, ll m) {
    int ret = 1;
    while (m) {
        if (m & 1)
            (ret *= n) %= mod;
        (n *= n) %= mod;
        m /= 2;
    }
    return ret;
}

void pre() {
    fact[0] = 1;
    for (int i = 1; i < N; i++)
        fact[i] = i * fact[i - 1] % mod;
    modinv[N - 1] = fastpow(fact[N - 1], mod - 2);
    for (int i = N - 2; i >= 0; i--)
        modinv[i] = (i + 1) * modinv[i + 1] % mod;
}

ll ncr(ll n, ll r) {
    return fact[n] * modinv[n - r] % mod * modinv[r] % mod;
}

void dfs(int i,int p, vector<vector<int>>&adj){
	for(auto c:adj[i]){
		dfs(c,i,adj);
	}
}

void solve(){
    int n;
    cin>>n;    
    ll x[n];
    set<ll> vs;
    vs.insert(0);
    ll dist=0;
    map<ll,ll> mpd;
    forn(i,n){
        cin>>x[i];
        if(vs.size()==1){
            mpd[0]=x[i];
            mpd[x[i]]=x[i];
            vs.insert(x[i]);
            dist+=2*x[i];
        } else {
            vs.insert(x[i]);
            ll mm=x[i];
            if(next(vs.find(x[i]))!=vs.end()){
                ll vv=(*next(vs.find(x[i])));
                dist-=mpd[vv];
                mpd[vv]=min(mpd[vv],abs(x[i]-vv));
                dist+=mpd[vv];
                mm=min(mm,abs(x[i]-vv));
            }
            ll vv=(*prev(vs.find(x[i])));
            dist-=mpd[vv];
            mpd[vv]=min(mpd[vv],abs(x[i]-vv));
            mm=min(mm,abs(x[i]-vv)); 
            dist+=mpd[vv];
            mpd[x[i]]=mm;
            dist+=mm;
        }
        cout<<dist<<endl;
    }
    
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);

    int T = 1;
    // cin >> T;
    while(T--){
        solve();
    }
    return 0;
}

提出情報

提出日時
問題 D - Neighbor Distance
ユーザ SummitDevil
言語 C++23 (GCC 15.2.0)
得点 400
コード長 2849 Byte
結果 AC
実行時間 949 ms
メモリ 64344 KiB

コンパイルエラー

./Main.cpp: In function 'void dfs(int, int, std::vector<std::vector<int> >&)':
./Main.cpp:79:20: warning: unused parameter 'p' [-Wunused-parameter]
   79 | void dfs(int i,int p, vector<vector<int>>&adj){
      |                ~~~~^

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 400 / 400
結果
AC × 1
AC × 31
セット名 テストケース
Sample sample_01.txt
All sample_01.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt
ケース名 結果 実行時間 メモリ
sample_01.txt AC 1 ms 3512 KiB
test_01.txt AC 1 ms 3588 KiB
test_02.txt AC 1 ms 3480 KiB
test_03.txt AC 525 ms 64024 KiB
test_04.txt AC 530 ms 64200 KiB
test_05.txt AC 530 ms 64140 KiB
test_06.txt AC 760 ms 64256 KiB
test_07.txt AC 761 ms 64344 KiB
test_08.txt AC 760 ms 64308 KiB
test_09.txt AC 748 ms 64144 KiB
test_10.txt AC 752 ms 64204 KiB
test_11.txt AC 759 ms 64232 KiB
test_12.txt AC 754 ms 64224 KiB
test_13.txt AC 622 ms 64116 KiB
test_14.txt AC 633 ms 64328 KiB
test_15.txt AC 624 ms 64220 KiB
test_16.txt AC 640 ms 64224 KiB
test_17.txt AC 888 ms 64216 KiB
test_18.txt AC 865 ms 64128 KiB
test_19.txt AC 871 ms 64212 KiB
test_20.txt AC 949 ms 64260 KiB
test_21.txt AC 922 ms 64120 KiB
test_22.txt AC 920 ms 64208 KiB
test_23.txt AC 886 ms 64332 KiB
test_24.txt AC 910 ms 64128 KiB
test_25.txt AC 895 ms 64100 KiB
test_26.txt AC 918 ms 64296 KiB
test_27.txt AC 929 ms 64252 KiB
test_28.txt AC 916 ms 64192 KiB
test_29.txt AC 923 ms 64116 KiB
test_30.txt AC 920 ms 64116 KiB