Submission #1004402

#TimeUsernameProblemLanguageResultExecution timeMemory
1004402codexistentJakarta Skyscrapers (APIO15_skyscraper)C++14
10 / 100
1 ms1372 KiB
#include <iostream> #include <vector> #include <set> using namespace std; #define FOR(i, a, b) for(long long i = a; i <= b; i++) #define MAXN 30005 long long n, m, t[MAXN], s, e; vector<long long> p[MAXN]; set<long long> a; int main(){ cin >> n >> m; FOR(i, 0, n - 1) t[i] = -1; FOR(i, 0, m - 1){ int b, pi; cin >> b >> pi; if(i == 0) s = b, t[b] = 0; else if(s != b) a.insert(b); if(i == 1) e = b; p[b].push_back(pi); } long long c = s; pair<long long, long long> nx = make_pair(-1, -1); while(c != -1){ for(long long i : a){ for(long long j : p[c]){ if(abs(i - c) % j == 0){ t[i] = (t[i] == -1) ? (t[c] + abs(i - c) / j) : min(t[i], t[c] + abs(i - c) / j); } } if(nx.first == -1 || (nx.first > t[i])){ nx.first = t[i]; nx.second = i; } } a.erase(c); c = nx.second; nx.first = nx.second = -1; } cout << t[e] << endl; }
#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...