Submission #1168636

#TimeUsernameProblemLanguageResultExecution timeMemory
1168636tkm_algorithmsJakarta Skyscrapers (APIO15_skyscraper)C++20
36 / 100
273 ms327680 KiB
/** * In the name of Allah * We are nothing and you're everything * author: najmuddin **/ #include <bits/stdc++.h> using namespace std; #define all(x) begin(x), end(x) #define sz(x) (int)(x).size() typedef long long ll; #define int ll const char nl = '\n'; const int N = 1e5+5; const int inf = 1e18+10; void solve() { int n, m; cin >> n >> m; vector<int> b(m), p(m); vector<tuple<int, int>> g[n]; for (int i = 0; i < m; ++i) { cin >> b[i] >> p[i]; int k = 1; while (b[i]-p[i]*k >= 0)g[b[i]].push_back({b[i]-p[i]*k, k}), k++; k = 1; while (b[i]+p[i]*k < n)g[b[i]].push_back({b[i]+p[i]*k, k}), k++; } vector<int> vis(n+1, inf); vis[b[0]] = 0; queue<tuple<int, int>> q; q.push({b[0], 0}); while (!q.empty()) { auto [x, a] = q.front(); q.pop(); for (auto [i, w]: g[x]) { if (vis[i] > w+a)q.push({i, a+w}), vis[i] = a+w; } } if (vis[b[1]] == inf)vis[b[1]] = -1; cout << vis[b[1]]; } int32_t main() { ios_base::sync_with_stdio(0); cin.tie(0); // freopen("input.txt", "r", stdin); int T = 1; for (int _ = 0; _ < T; ++_) { solve(); } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...