提出 #70606778


ソースコード 拡げる

#include <bits/stdc++.h>
#include <bits/extc++.h>
using namespace std;
using namespace __gnu_pbds;
using namespace __gnu_cxx;
const int maxn = 5e5+5;
class B
{
public:
    int val,ans;
};
class A
{
public:
    int num,val;
    list<B>::iterator it;
    bool operator<(const A &that)const
    {
        return val<that.val;
    }
    bool operator>(const A &that)const
    {
        return num>that.num;
    }
}a[maxn];
long long res=0;
list<B> l;
void updata(list<B>::iterator it)
{
    int ans=2e9;
    if (it!=l.begin())
    {
        auto it2=it;
        it2--;
        ans=it->val-it2->val;
    }
    auto it2=it;
    it2++;
    if (it2!=l.end())
        ans=min(ans,it2->val-it->val);
    res-=it->ans;
    it->ans=ans;
    res+=ans;
}
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    int n;
    cin>>n;
    for (int i=1;i<=n;i++)
    {
        cin>>a[i].val;
        a[i].num=i;
    }
    sort(a,a+n+1);
    for (int i=0;i<=n;i++)
        l.push_back({a[i].val,0});
    auto it=l.begin();
    for (int i=0;i<=n;i++)
    {
        a[i].it=it;
        it++;
    }
    for (auto i=l.begin();i!=l.end();i++)
        updata(i);
    stack<long long> s;
    sort(a,a+n+1,greater<A>());
    for (int i=0;i<n;i++)
    {
        s.push(res);
        auto it=a[i].it;
        vector<list<B>::iterator> itt;
        if (it!=l.begin())
        {
            auto it2=it;
            it2--;
            itt.push_back(it2);
        }
        auto it2=it;
        it2++;
        if (it2!=l.end())
            itt.push_back(it2);
        res-=it->ans;
        l.erase(it);
        for (auto j:itt)
            updata(j);
    }
    while (!s.empty())
    {
        print("{}\n",s.top());
        s.pop();
    }

}

提出情報

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

ジャッジ結果

セット名 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 9 ms 14244 KiB
test_01.txt AC 5 ms 14136 KiB
test_02.txt AC 5 ms 14160 KiB
test_03.txt AC 86 ms 30048 KiB
test_04.txt AC 89 ms 30064 KiB
test_05.txt AC 87 ms 30120 KiB
test_06.txt AC 93 ms 30056 KiB
test_07.txt AC 94 ms 30132 KiB
test_08.txt AC 93 ms 30048 KiB
test_09.txt AC 128 ms 30040 KiB
test_10.txt AC 126 ms 30044 KiB
test_11.txt AC 128 ms 30044 KiB
test_12.txt AC 127 ms 30064 KiB
test_13.txt AC 133 ms 30048 KiB
test_14.txt AC 124 ms 30044 KiB
test_15.txt AC 134 ms 30044 KiB
test_16.txt AC 125 ms 30044 KiB
test_17.txt AC 202 ms 32424 KiB
test_18.txt AC 200 ms 32524 KiB
test_19.txt AC 202 ms 32456 KiB
test_20.txt AC 203 ms 32456 KiB
test_21.txt AC 202 ms 32456 KiB
test_22.txt AC 208 ms 32568 KiB
test_23.txt AC 207 ms 32536 KiB
test_24.txt AC 209 ms 32504 KiB
test_25.txt AC 215 ms 32456 KiB
test_26.txt AC 206 ms 32592 KiB
test_27.txt AC 211 ms 32612 KiB
test_28.txt AC 205 ms 32516 KiB
test_29.txt AC 205 ms 32576 KiB
test_30.txt AC 203 ms 32592 KiB