Submission #977880

# Submission time Handle Problem Language Result Execution time Memory
977880 2024-05-08T13:03:09 Z SmuggingSpun Jakarta Skyscrapers (APIO15_skyscraper) C++14
10 / 100
1 ms 596 KB
#include<bits/stdc++.h>
#define taskname "skyscraper"
using namespace std;
typedef long long ll;
template<class T>bool minimize(T& a, T b){
	if(a > b){
		a = b;
		return true;
	}
	return false;
}
const int lim = 3e4 + 5;
int n, m, b[lim], p[lim];
namespace sub1{
	void solve(){
		if(m == 2){
			return void(cout << (abs(b[0] - b[1]) % p[0] == 0 ? abs(b[0] - b[1]) / p[0] : -1));
		}
		int ans = (abs(b[0] - b[1]) % p[0] == 0 ? abs(b[0] - b[1]) / p[0] : INT_MAX);
		if(abs(b[0] - b[2]) % p[0] == 0 && abs(b[2] - b[1]) % p[2] == 0){
			minimize(ans, abs(b[0] - b[2]) / p[0] + abs(b[2] - b[1]) / p[2]);
		}
		cout << (ans == INT_MAX ? -1 : ans);
	}
}
namespace sub23{
	const int LIM = 2e3 + 5;
	int d[LIM];
	bitset<LIM>vis;
	void solve(){
		vis.reset();
		priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>>pq;
		memset(d, 0x0f, sizeof(d));
		pq.emplace(d[0] = 0, 0);
		while(!pq.empty()){
			auto [w, u] = pq.top();
			pq.pop();
			if(!vis.test(u)){
				vis.set(u);
				for(int v = 0; v < m; v++){
					if(abs(b[u] - b[v]) % p[u] == 0 && minimize(d[v], w + abs(b[u] - b[v]) / p[u])){
						pq.emplace(d[v], v);
					}
				}
			}
		}
		cout << (d[1] == d[LIM - 1] ? -1 : d[1]);
	}
}
int main(){
	ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
	if(fopen(taskname".inp", "r")){
		freopen(taskname".inp", "r", stdin);
	}
	cin >> n >> m;
	for(int i = 0; i < m; i++){
		cin >> b[i] >> p[i];
	}
	if(n <= 10 && *max_element(p, p + m) <= 10 && m <= 3){
		sub1::solve();
	}
}

Compilation message

skyscraper.cpp: In function 'void sub23::solve()':
skyscraper.cpp:36:9: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   36 |    auto [w, u] = pq.top();
      |         ^
skyscraper.cpp: In function 'int main()':
skyscraper.cpp:53:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   53 |   freopen(taskname".inp", "r", stdin);
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 1 ms 504 KB Output is correct
3 Correct 1 ms 344 KB Output is correct
4 Correct 1 ms 344 KB Output is correct
5 Correct 1 ms 348 KB Output is correct
6 Correct 1 ms 348 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 596 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 1 ms 500 KB Output is correct
6 Correct 1 ms 344 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Incorrect 1 ms 348 KB Output isn't correct
9 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 0 ms 344 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Incorrect 1 ms 348 KB Output isn't correct
9 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 516 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 1 ms 500 KB Output is correct
6 Correct 1 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Incorrect 0 ms 348 KB Output isn't correct
9 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 1 ms 500 KB Output is correct
3 Correct 1 ms 344 KB Output is correct
4 Correct 1 ms 516 KB Output is correct
5 Correct 1 ms 344 KB Output is correct
6 Correct 1 ms 344 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Incorrect 0 ms 348 KB Output isn't correct
9 Halted 0 ms 0 KB -