提出 #28653786


ソースコード 拡げる

#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#define sz(x) (int)x.size()
//#define sqr(x) x*x
//#pragma GCC optimize(3)
//#pragma GCC optimize("Ofast")
//#pragma GCC target("sse,sse2,sse3,ssse3,sse4,sse4.1,sse4.2,popcnt,abm,mmx,avx,avx2,tune=native")
//#pragma GCC optimize("unroll-loops")
using namespace std;
using namespace __gnu_pbds;

//#define int long long

template <class T> using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;

vector<vector<pair<int, int> > > g;

void solve()
{
    int n, m;
    cin >> n >> m;
    g.resize(3 * n);
    int a[n], b[n];
    for (int i = 0; i < n; i++)
    {
        cin >> a[i];
        a[i] = (m - a[i]) % m;
    }
    for (int i = 0; i < n; i++)
    {
        cin >> b[i];
    }
    map<int, int> mp;
    int C = 0;
    for (int i = 0; i < n; i++)
    {
        if (!mp.count(a[i]))
        {
            mp[a[i]] = C++;
        }
        if (!mp.count(b[i]))
        {
            mp[b[i]] = C++;
        }
    }
    for (int i = 0; i < n; i++)
    {
        g[i].push_back({n + mp[a[i]], 0});
        g[n + mp[b[i]]].push_back({i, 0});
    }
    vector<pair<int, int> > v;
    for (auto& p : mp)
        v.push_back(p);
    for (int i = 0; i < v.size(); i++)
    {
        int x = v[i].second + n;
        int y = v[(i + 1) % v.size()].second + n;
        int w = (v[(i + 1) % v.size()].first - v[i].first + m) % m;
        g[x].push_back({y, w});
    }
    vector<int> d(3 * n, INT_MAX);
    d[0] = 0;
    set<pair<int, int> > st;
    st.insert({0, 0});
    while (!st.empty())
    {
        auto [dist, v] = *st.begin();
        st.erase(st.begin());
        for (auto& [u, w] : g[v])
        {
            if (d[v] + w < d[u])
            {
                d[u] = d[v] + w;
                st.insert({d[u], u});
            }
        }
    }
    cout << d[n - 1];
}

signed main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int t;
//    cin >> t;
    t = 1;
    while (t--)
    {
        solve();
    }
    return 0;
}


/*
4 4
1 2 1 3
1 1
1 2
1 3
1 4
*/

提出情報

提出日時
問題 G - Modulo Shortest Path
ユーザ GrgaExe
言語 C++ (GCC 9.2.1)
得点 600
コード長 2247 Byte
結果 AC
実行時間 724 ms
メモリ 63776 KiB

コンパイルエラー

./Main.cpp: In function ‘void solve()’:
./Main.cpp:55:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<std::pair<int, int> >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   55 |     for (int i = 0; i < v.size(); i++)
      |                     ~~^~~~~~~~~~

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 600 / 600
結果
AC × 2
AC × 74
セット名 テストケース
Sample example0.txt, example1.txt
All 000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, 011.txt, 012.txt, 013.txt, 014.txt, 015.txt, 016.txt, 017.txt, 018.txt, 019.txt, 020.txt, 021.txt, 022.txt, 023.txt, 024.txt, 025.txt, 026.txt, 027.txt, 028.txt, 029.txt, 030.txt, 031.txt, 032.txt, 033.txt, 034.txt, 035.txt, 036.txt, 037.txt, 038.txt, 039.txt, 040.txt, 041.txt, 042.txt, 043.txt, 044.txt, 045.txt, 046.txt, 047.txt, 048.txt, 049.txt, 050.txt, 051.txt, 052.txt, 053.txt, 054.txt, 055.txt, 056.txt, 057.txt, 058.txt, 059.txt, 060.txt, 061.txt, 062.txt, 063.txt, 064.txt, 065.txt, 066.txt, 067.txt, 068.txt, 069.txt, 070.txt, 071.txt, example0.txt, example1.txt
ケース名 結果 実行時間 メモリ
000.txt AC 8 ms 3504 KiB
001.txt AC 104 ms 38208 KiB
002.txt AC 2 ms 3644 KiB
003.txt AC 212 ms 44504 KiB
004.txt AC 320 ms 53820 KiB
005.txt AC 209 ms 44544 KiB
006.txt AC 387 ms 49356 KiB
007.txt AC 372 ms 49180 KiB
008.txt AC 376 ms 49228 KiB
009.txt AC 385 ms 49284 KiB
010.txt AC 372 ms 49344 KiB
011.txt AC 100 ms 38376 KiB
012.txt AC 102 ms 38336 KiB
013.txt AC 241 ms 55392 KiB
014.txt AC 101 ms 38192 KiB
015.txt AC 309 ms 55376 KiB
016.txt AC 95 ms 33700 KiB
017.txt AC 170 ms 39596 KiB
018.txt AC 289 ms 61860 KiB
019.txt AC 204 ms 44612 KiB
020.txt AC 308 ms 61748 KiB
021.txt AC 302 ms 61928 KiB
022.txt AC 302 ms 61800 KiB
023.txt AC 297 ms 61856 KiB
024.txt AC 715 ms 63688 KiB
025.txt AC 705 ms 63772 KiB
026.txt AC 700 ms 63664 KiB
027.txt AC 697 ms 63776 KiB
028.txt AC 213 ms 44548 KiB
029.txt AC 183 ms 43016 KiB
030.txt AC 49 ms 9320 KiB
031.txt AC 365 ms 38996 KiB
032.txt AC 17 ms 4520 KiB
033.txt AC 213 ms 27048 KiB
034.txt AC 138 ms 19732 KiB
035.txt AC 7 ms 4132 KiB
036.txt AC 622 ms 58244 KiB
037.txt AC 11 ms 4480 KiB
038.txt AC 699 ms 63616 KiB
039.txt AC 716 ms 63592 KiB
040.txt AC 707 ms 63640 KiB
041.txt AC 724 ms 63640 KiB
042.txt AC 710 ms 63580 KiB
043.txt AC 717 ms 63724 KiB
044.txt AC 696 ms 63768 KiB
045.txt AC 711 ms 63724 KiB
046.txt AC 2 ms 3504 KiB
047.txt AC 2 ms 3504 KiB
048.txt AC 2 ms 3648 KiB
049.txt AC 2 ms 3576 KiB
050.txt AC 4 ms 3504 KiB
051.txt AC 2 ms 3560 KiB
052.txt AC 4 ms 3508 KiB
053.txt AC 2 ms 3532 KiB
054.txt AC 2 ms 3540 KiB
055.txt AC 2 ms 3536 KiB
056.txt AC 2 ms 3572 KiB
057.txt AC 2 ms 3668 KiB
058.txt AC 2 ms 3596 KiB
059.txt AC 2 ms 3600 KiB
060.txt AC 2 ms 3584 KiB
061.txt AC 106 ms 29596 KiB
062.txt AC 126 ms 30128 KiB
063.txt AC 118 ms 30236 KiB
064.txt AC 99 ms 29240 KiB
065.txt AC 98 ms 29336 KiB
066.txt AC 91 ms 29860 KiB
067.txt AC 90 ms 29696 KiB
068.txt AC 92 ms 29844 KiB
069.txt AC 89 ms 30148 KiB
070.txt AC 88 ms 30048 KiB
071.txt AC 89 ms 33520 KiB
example0.txt AC 2 ms 3620 KiB
example1.txt AC 2 ms 3512 KiB