提出 #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 | ||||
結果 |
|
|
セット名 | テストケース |
---|---|
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 |