Submission #41436

#TimeUsernameProblemLanguageResultExecution timeMemory
41436NurlykhanJakarta Skyscrapers (APIO15_skyscraper)C++14
36 / 100
1069 ms1004 KiB
#include <bits/stdc++.h> #define pii pair<int, int> #define f first #define s second #define pb push_back #define mp make_pair #define ll long long #define ld long double #define sz(v) int(v.size()) #define all(v) v.begin(), v.end() #define vec vector<int> #define dead not_bad #define left not_right #define y1 what using namespace std; const int N = (int) 3e4 + 10; const int M = (int) 2e4 + 10; const ll LINF = (ll) 1e18; const int INF = (int) 1e9 + 7; const double PI = 3.14159265359; const double EPS = (double) 1e-9; int nx[8] = {-1, -2, -2, -1, 1, 1, 2, 2}; int ny[8] = {-2, -1, 1, 2, -2, 2, -1, 1}; int n, m; int b[N], p[N]; ll d[N]; bool u[N]; int main() { #define fn "teams" #ifdef witch freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); #else //freopen(fn".in", "r", stdin); //freopen(fn".out", "w", stdout); #endif cin >> n >> m; for (int i = 0; i < m; i++) { cin >> b[i] >> p[i]; d[i] = LINF; } d[0] = 0; for (int iter = 1; iter < m; iter++) { int id = -1; for (int i = 0; i < m; i++) { if (!u[i] && (id == -1 || d[id] > d[i])) { id = i; } } if (id == -1 || d[id] == LINF) break; u[id] = 1; for (int i = 0; i < m; i++) { if ((b[i] - b[id]) % p[id] == 0) { int e = abs(b[i] - b[id]) / p[id]; if (d[id] + e < d[i]) { d[i] = d[id] + e; } } } } if (d[1] == LINF) d[1] = -1; cout << d[1]; 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...