답안 #41407

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
41407 2018-02-17T07:32:20 Z RockyB Jakarta Skyscrapers (APIO15_skyscraper) C++14
36 / 100
735 ms 33876 KB
/// In The Name Of God
 
#pragma GCC optimize("Ofast")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
 
#include <bits/stdc++.h>
 
#define f first
#define s second
 
#define pb push_back
#define pp pop_back
#define mp make_pair
 
#define sz(x) (int)x.size()
#define sqr(x) ((x) * 1ll * (x))
#define all(x) x.begin(), x.end()
 
#define Kazakhstan ios_base :: sync_with_stdio(0), cin.tie(0), cout.tie(0);
 
#define nl '\n'
#define ioi exit(0);
 
typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
 
const int N = (int)3e4 + 7;
const int inf = (int)1e9 + 7;
const int mod = (int)1e9 + 7;
const ll linf = (ll)1e18 + 7;
 
const int dx[] = {-1, 0, 1, 0, 1, -1, -1, 1};
const int dy[] = {0, 1, 0, -1, 1, -1, 1, -1};
 
using namespace std;
 
int n, m;
int b[N], p[N];
vector < pair <int, int> > g[N];
ll d[N];
int main() {
	#ifdef IOI2018
		freopen ("in.txt", "r", stdin);
	#endif
	Kazakhstan
	cin >> n >> m;
	for (int i = 1; i <= m; i++) {
		cin >> b[i] >> p[i];
	}
	for (int i = 1; i <= m; i++) {
		for (int j = 1; j <= min(5000, m); j++) {
			if (i == j) continue;
			if (abs(b[i] - b[j]) % p[i] == 0) {
				g[i].pb({j, abs(b[i] - b[j]) / p[i]});
			}
		}
	}
	set < pair <ll, int > > st;
	memset(d, 0x3f, sizeof(d));
	st.insert({0, 1});
	d[1] = 0;
	while (sz(st)) {
		pair <ll, int> v = *st.begin();
		st.erase(st.begin());
		for (auto to : g[v.s]) {
			if (d[to.f] > v.f + to.s) {
				st.erase({d[to.f], to.f});
				d[to.f] = v.f + to.s;
				st.insert({d[to.f], to.f});
			}
		}
	}
	if (d[2] >= linf) cout << -1;
	else cout << d[2];
	ioi
}
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 1308 KB Output is correct
2 Correct 2 ms 1376 KB Output is correct
3 Correct 2 ms 1448 KB Output is correct
4 Correct 2 ms 1448 KB Output is correct
5 Correct 2 ms 1560 KB Output is correct
6 Correct 2 ms 1560 KB Output is correct
7 Correct 3 ms 1560 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 1560 KB Output is correct
2 Correct 3 ms 1560 KB Output is correct
3 Correct 3 ms 1560 KB Output is correct
4 Correct 2 ms 1560 KB Output is correct
5 Correct 2 ms 1560 KB Output is correct
6 Correct 2 ms 1560 KB Output is correct
7 Correct 2 ms 1560 KB Output is correct
8 Correct 2 ms 1560 KB Output is correct
9 Correct 3 ms 1560 KB Output is correct
10 Correct 4 ms 1644 KB Output is correct
11 Correct 34 ms 3696 KB Output is correct
12 Correct 87 ms 33528 KB Output is correct
13 Correct 90 ms 33772 KB Output is correct
14 Correct 34 ms 33772 KB Output is correct
15 Correct 32 ms 33772 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 33772 KB Output is correct
2 Correct 3 ms 33772 KB Output is correct
3 Correct 2 ms 33772 KB Output is correct
4 Correct 3 ms 33772 KB Output is correct
5 Correct 2 ms 33772 KB Output is correct
6 Correct 2 ms 33772 KB Output is correct
7 Correct 2 ms 33772 KB Output is correct
8 Correct 3 ms 33772 KB Output is correct
9 Correct 2 ms 33772 KB Output is correct
10 Correct 4 ms 33772 KB Output is correct
11 Correct 33 ms 33772 KB Output is correct
12 Correct 91 ms 33772 KB Output is correct
13 Correct 85 ms 33772 KB Output is correct
14 Correct 32 ms 33772 KB Output is correct
15 Correct 33 ms 33772 KB Output is correct
16 Correct 8 ms 33772 KB Output is correct
17 Correct 25 ms 33772 KB Output is correct
18 Correct 10 ms 33772 KB Output is correct
19 Correct 4 ms 33772 KB Output is correct
20 Correct 94 ms 33876 KB Output is correct
21 Correct 12 ms 33876 KB Output is correct
22 Correct 6 ms 33876 KB Output is correct
23 Correct 9 ms 33876 KB Output is correct
24 Correct 25 ms 33876 KB Output is correct
25 Correct 26 ms 33876 KB Output is correct
26 Correct 88 ms 33876 KB Output is correct
27 Correct 90 ms 33876 KB Output is correct
28 Correct 29 ms 33876 KB Output is correct
29 Correct 7 ms 33876 KB Output is correct
30 Correct 3 ms 33876 KB Output is correct
31 Correct 7 ms 33876 KB Output is correct
32 Correct 4 ms 33876 KB Output is correct
33 Correct 33 ms 33876 KB Output is correct
34 Correct 32 ms 33876 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 33876 KB Output is correct
2 Correct 2 ms 33876 KB Output is correct
3 Correct 2 ms 33876 KB Output is correct
4 Correct 2 ms 33876 KB Output is correct
5 Correct 2 ms 33876 KB Output is correct
6 Correct 2 ms 33876 KB Output is correct
7 Correct 2 ms 33876 KB Output is correct
8 Correct 3 ms 33876 KB Output is correct
9 Correct 2 ms 33876 KB Output is correct
10 Correct 4 ms 33876 KB Output is correct
11 Correct 34 ms 33876 KB Output is correct
12 Correct 91 ms 33876 KB Output is correct
13 Correct 85 ms 33876 KB Output is correct
14 Correct 33 ms 33876 KB Output is correct
15 Correct 32 ms 33876 KB Output is correct
16 Correct 7 ms 33876 KB Output is correct
17 Correct 23 ms 33876 KB Output is correct
18 Correct 8 ms 33876 KB Output is correct
19 Correct 6 ms 33876 KB Output is correct
20 Correct 86 ms 33876 KB Output is correct
21 Correct 15 ms 33876 KB Output is correct
22 Correct 5 ms 33876 KB Output is correct
23 Correct 8 ms 33876 KB Output is correct
24 Correct 24 ms 33876 KB Output is correct
25 Correct 28 ms 33876 KB Output is correct
26 Correct 79 ms 33876 KB Output is correct
27 Correct 79 ms 33876 KB Output is correct
28 Correct 26 ms 33876 KB Output is correct
29 Correct 7 ms 33876 KB Output is correct
30 Correct 2 ms 33876 KB Output is correct
31 Correct 4 ms 33876 KB Output is correct
32 Correct 4 ms 33876 KB Output is correct
33 Correct 32 ms 33876 KB Output is correct
34 Correct 32 ms 33876 KB Output is correct
35 Incorrect 728 ms 33876 KB Output isn't correct
36 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 33876 KB Output is correct
2 Correct 2 ms 33876 KB Output is correct
3 Correct 2 ms 33876 KB Output is correct
4 Correct 2 ms 33876 KB Output is correct
5 Correct 2 ms 33876 KB Output is correct
6 Correct 2 ms 33876 KB Output is correct
7 Correct 2 ms 33876 KB Output is correct
8 Correct 3 ms 33876 KB Output is correct
9 Correct 2 ms 33876 KB Output is correct
10 Correct 5 ms 33876 KB Output is correct
11 Correct 32 ms 33876 KB Output is correct
12 Correct 83 ms 33876 KB Output is correct
13 Correct 86 ms 33876 KB Output is correct
14 Correct 34 ms 33876 KB Output is correct
15 Correct 30 ms 33876 KB Output is correct
16 Correct 7 ms 33876 KB Output is correct
17 Correct 23 ms 33876 KB Output is correct
18 Correct 8 ms 33876 KB Output is correct
19 Correct 4 ms 33876 KB Output is correct
20 Correct 86 ms 33876 KB Output is correct
21 Correct 10 ms 33876 KB Output is correct
22 Correct 5 ms 33876 KB Output is correct
23 Correct 10 ms 33876 KB Output is correct
24 Correct 23 ms 33876 KB Output is correct
25 Correct 25 ms 33876 KB Output is correct
26 Correct 80 ms 33876 KB Output is correct
27 Correct 83 ms 33876 KB Output is correct
28 Correct 25 ms 33876 KB Output is correct
29 Correct 7 ms 33876 KB Output is correct
30 Correct 2 ms 33876 KB Output is correct
31 Correct 5 ms 33876 KB Output is correct
32 Correct 4 ms 33876 KB Output is correct
33 Correct 32 ms 33876 KB Output is correct
34 Correct 33 ms 33876 KB Output is correct
35 Incorrect 735 ms 33876 KB Output isn't correct
36 Halted 0 ms 0 KB -