# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1120659 | mmdrzada | Jakarta Skyscrapers (APIO15_skyscraper) | C++17 | 컴파일 에러 | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
typedef vector<int> vi;
typedef vector<char> vc;
typedef pair<int, int> pii;
typedef long long ll;
typedef pair<ll, ll> pll;
typedef vector<ll> vll;
#define sep ' '
#define F first
#define S second
#define fastIO ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define pb push_back
#define kill(x) {cout << x << endl;return;}
#define sz(x) int(x.size())
#define SP(x) setprecision(x)
#define mod(x) (1ll*x%M+M)%M
#define pq priority_queue
#define mid (l+r)/2
// #define mid2 (l+r+1)/2
#define pll pair<ll, ll>
#define REP(i, k) for (int i = 0 ; i < k ; i ++)
#define MP make_pair
const int M = 998244353;
const int N = 3e4+1;
int n, m;
vector<pair<int, int>> adj[N];
ll dis[N];
bool vis[N];
int b[N], p[N];
vi D[N];
bitset<N> mat[N];
void solve() {
// input in 0-index itself
cin >> n >> m;
for(int i = 0 ; i < m ; i ++) {
cin >> b[i] >> p[i];
D[b[i]].pb(p[i]);
}
for(int i = 0 ; i < n ; i ++) {
sort(D[i].begin(), D[i].end(), greater<>());
}
for(int i = 0 ; i < n ; i ++) {
for(int j = 0 ; j < D[i].size(); j ++) {
if (j == 0 || D[i][j] != D[i][j-1]) {
for(int k = i-D[i][j], cnt = 1 ; k >= 0 ; k -= D[i][j], cnt++) {
if ((k == 1 || (!adj[i].empty() && (adj[i][0] != D[i][j] || adj[i].back() != D[i][j])) && !mat[i][k]) {
adj[i].pb({k, cnt});
mat[i][k] = true;
}
}
for(int k = i+D[i][j], cnt = 1 ; k < n ; k += D[i][j], cnt++) {
if (!mat[i][k]) {
adj[i].pb({k, cnt});
mat[i][k] = true;
}
}
}
}
}
fill(dis, dis+n, n*n+1);
dis[b[0]] = 0;
priority_queue<pii, vector<pii>, greater<pii> > q;
q.push({0, b[0]});
while(!q.empty()) {
int u = q.top().S;
q.pop();
for(auto [neigh, w]: adj[u]) {
if (dis[neigh] > dis[u] + w) {
dis[neigh] = dis[u] + w;
q.push({dis[neigh], neigh});
}
}
}
cout << (dis[b[1]] == n*n+1 ? -1 : dis[b[1]]) << endl;
}
// check MAXN
int32_t main() {
fastIO;
solve();
return 0;
}
컴파일 시 표준 에러 (stderr) 메시지
skyscraper.cpp: In function 'void solve()': skyscraper.cpp:51:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare] 51 | for(int j = 0 ; j < D[i].size(); j ++) { | ~~^~~~~~~~~~~~~ skyscraper.cpp:54:52: error: no match for 'operator!=' (operand types are '__gnu_cxx::__alloc_traits<std::allocator<std::pair<int, int> >, std::pair<int, int> >::value_type' {aka 'std::pair<int, int>'} and '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'}) 54 | if ((k == 1 || (!adj[i].empty() && (adj[i][0] != D[i][j] || adj[i].back() != D[i][j])) && !mat[i][k]) { In file included from /usr/include/c++/10/regex:62, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110, from skyscraper.cpp:1: /usr/include/c++/10/bits/regex.h:1064:5: note: candidate: 'template<class _BiIter> bool std::__cxx11::operator!=(const std::__cxx11::sub_match<_BiIter>&, const std::__cxx11::sub_match<_BiIter>&)' 1064 | operator!=(const sub_match<_BiIter>& __lhs, const sub_match<_BiIter>& __rhs) | ^~~~~~~~ /usr/include/c++/10/bits/regex.h:1064:5: note: template argument deduction/substitution failed: skyscraper.cpp:54:61: note: '__gnu_cxx::__alloc_traits<std::allocator<std::pair<int, int> >, std::pair<int, int> >::value_type' {aka 'std::pair<int, int>'} is not derived from 'const std::__cxx11::sub_match<_BiIter>' 54 | if ((k == 1 || (!adj[i].empty() && (adj[i][0] != D[i][j] || adj[i].back() != D[i][j])) && !mat[i][k]) { | ^ In file included from /usr/include/c++/10/regex:62, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110, from skyscraper.cpp:1: /usr/include/c++/10/bits/regex.h:1144:5: note: candidate: 'template<class _Bi_iter, class _Ch_traits, class _Ch_alloc> bool std::__cxx11::operator!=(std::__cxx11::__sub_match_string<_Bi_iter, _Ch_traits, _Ch_alloc>&, const std::__cxx11::sub_match<_BiIter>&)' 1144 | operator!=(const __sub_match_string<_Bi_iter, _Ch_traits, _Ch_alloc>& __lhs, | ^~~~~~~~ /usr/include/c++/10/bits/regex.h:1144:5: note: template argument deduction/substitution failed: skyscraper.cpp:54:61: note: '__gnu_cxx::__alloc_traits<std::allocator<std::pair<int, int> >, std::pair<int, int> >::value_type' {aka 'std::pair<int, int>'} is not derived from 'std::__cxx11::__sub_match_string<_Bi_iter, _Ch_traits, _Ch_alloc>' 54 | if ((k == 1 || (!adj[i].empty() && (adj[i][0] != D[i][j] || adj[i].back() != D[i][j])) && !mat[i][k]) { | ^ In file included from /usr/include/c++/10/regex:62, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110, from skyscraper.cpp:1: /usr/include/c++/10/bits/regex.h:1237:5: note: candidate: 'template<class _Bi_iter, class _Ch_traits, class _Ch_alloc> bool std::__cxx11::operator!=(const std::__cxx11::sub_match<_BiIter>&, std::__cxx11::__sub_match_string<_Bi_iter, _Ch_traits, _Ch_alloc>&)' 1237 | operator!=(const sub_match<_Bi_iter>& __lhs, | ^~~~~~~~ /usr/include/c++/10/bits/regex.h:1237:5: note: template argument deduction/substitution failed: skyscraper.cpp:54:61: note: '__gnu_cxx::__alloc_traits<std::allocator<std::pair<int, int> >, std::pair<int, int> >::value_type' {aka 'std::pair<int, int>'} is not derived from 'const std::__cxx11::sub_match<_BiIter>' 54 | if ((k == 1 || (!adj[i].empty() && (adj[i][0] != D[i][j] || adj[i].back() != D[i][j])) && !mat[i][k]) { | ^ In file included from /usr/include/c++/10/regex:62, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110, from skyscraper.cpp:1: /usr/include/c++/10/bits/regex.h:1311:5: note: candidate: 'template<class _Bi_iter> bool std::__cxx11::operator!=(const typename std::iterator_traits<_Iter>::value_type*, const std::__cxx11::sub_match<_BiIter>&)' 1311 | operator!=(typename iterator_traits<_Bi_iter>::value_type const* __lhs, | ^~~~~~~~ /usr/include/c++/10/bits/regex.h:1311:5: note: template argument deduction/substitution failed: skyscraper.cpp:54:61: note: mismatched types 'const std::__cxx11::sub_match<_BiIter>' and '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'} 54 | if ((k == 1 || (!adj[i].empty() && (adj[i][0] != D[i][j] || adj[i].back() != D[i][j])) && !mat[i][k]) { | ^ In file included from /usr/include/c++/10/regex:62, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110, from skyscraper.cpp:1: /usr/include/c++/10/bits/regex.h:1405:5: note: candidate: 'template<class _Bi_iter> bool std::__cxx11::operator!=(const std::__cxx11::sub_match<_BiIter>&, const typename std::iterator_traits<_Iter>::value_type*)' 1405 | operator!=(const sub_match<_Bi_iter>& __lhs, | ^~~~~~~~ /usr/include/c++/10/bits/regex.h:1405:5: note: template argument deduction/substitution failed: skyscraper.cpp:54:61: note: '__gnu_cxx::__alloc_traits<std::allocator<std::pair<int, int> >, std::pair<int, int> >::value_type' {aka 'std::pair<int, int>'} is not derived from 'const std::__cxx11::sub_match<_BiIter>' 54 | if ((k == 1 || (!adj[i].empty() && (adj[i][0] != D[i][j] || adj[i].back() != D[i][j])) && !mat[i][k]) { | ^ In file included from /usr/include/c++/10/regex:62, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110, from skyscraper.cpp:1: /usr/include/c++/10/bits/regex.h:1479:5: note: candidate: 'template<class _Bi_iter> bool std::__cxx11::operator!=(const typename std::iterator_traits<_Iter>::value_type&, const std::__cxx11::sub_match<_BiIter>&)' 1479 | operator!=(typename iterator_traits<_Bi_iter>::value_type const& __lhs, | ^~~~~~~~ /usr/include/c++/10/bits/regex.h:1479:5: note: template argument deduction/substitution failed: skyscraper.cpp:54:61: note: mismatched types 'const std::__cxx11::sub_match<_BiIter>' and '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'} 54 | if ((k == 1 || (!adj[i].empty() && (adj[i][0] != D[i][j] || adj[i].back() != D[i][j])) && !mat[i][k]) { | ^ In file included from /usr/include/c++/10/regex:62, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110, from skyscraper.cpp:1: /usr/include/c++/10/bits/regex.h:1579:5: note: candidate: 'template<class _Bi_iter> bool std::__cxx11::operator!=(const std::__cxx11::sub_match<_BiIter>&, const typename std::iterator_traits<_Iter>::value_type&)' 1579 | operator!=(const sub_match<_Bi_iter>& __lhs, | ^~~~~~~~ /usr/include/c++/10/bits/regex.h:1579:5: note: template argument deduction/substitution failed: skyscraper.cpp:54:61: note: '__gnu_cxx::__alloc_traits<std::allocator<std::pair<int, int> >, std::pair<int, int> >::value_type' {aka 'std::pair<int, int>'} is not derived from 'const std::__cxx11::sub_match<_BiIter>' 54 | if ((k == 1 || (!adj[i].empty() && (adj[i][0] != D[i][j] || adj[i].back() != D[i][j])) && !mat[i][k]) { | ^ In file included from /usr/include/c++/10/regex:62, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110, from skyscraper.cpp:1: /usr/include/c++/10/bits/regex.h:2126:5: note: candidate: 'template<class _Bi_iter, class _Alloc> bool std::__cxx11::operator!=(const std::__cxx11::match_results<_BiIter, _Alloc>&, const std::__cxx11::match_results<_BiIter, _Alloc>&)' 2126 | operator!=(const match_results<_Bi_iter, _Alloc>& __m1, | ^~~~~~~~ /usr/include/c++/10/bits/regex.h:2126:5: note: template argument deduction/substitution failed: skyscraper.cpp:54:61: note: '__gnu_cxx::__alloc_traits<std::allocator<std::pair<int, int> >, std::pair<int, int> >::value_type' {aka 'std::pair<int, int>'} is not derived from 'const std::__cxx11::match_results<_BiIter, _Alloc>' 54 | if ((k == 1 || (!adj[i].empty() && (adj[i][0] != D[i][j] || adj[i].back() != D[i][j])) && !mat[i][k]) { | ^ In file included from /usr/include/c++/10/bits/stl_algobase.h:64, from /usr/include/c++/10/bits/specfun.h:45, from /usr/include/c++/10/cmath:1927, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:41, from skyscraper.cpp:1: /usr/include/c++/10/bits/stl_pair.h:496:5: note: candidate: 'template<class _T1, class _T2> constexpr bool std::operator!=(const std::pair<_T1, _T2>&, const std::pair<_T1, _T2>&)' 496 | operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) | ^~~~~~~~ /usr/include/c++/10/bits/stl_pair.h:496:5: note: template argument deduction/substitution failed: skyscraper.cpp:54:61: note: mismatched types 'const std::pair<_T1, _T2>' and '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'} 54 | if ((k == 1 || (!adj[i].empty() && (adj[i][0] != D[i][j] || adj[i].back() != D[i][j])) && !mat[i][k]) { | ^ In file included from /usr/include/c++/10/bits/stl_algobase.h:67, from /usr/include/c++/10/bits/specfun.h:45, from /usr/include/c++/10/cmath:1927, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:41, from skyscraper.cpp:1: /usr/include/c++/10/bits/stl_iterator.h:372:5: note: candidate: 'template<class _Iterator> constexpr bool std::operator!=(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_Iterator>&)' 372 | operator!=(const reverse_iterator<_Iterator>& __x, | ^~~~~~~~ /usr/include/c++/10/bits/stl_iterator.h:372:5: note: template argument deduction/substitution failed: skyscraper.cpp:54:61: note: '__gnu_cxx::__alloc_traits<std::allocator<std::pair<int, int> >, std::pair<int, int> >::value_type' {aka 'std::pair<int, int>'} is not derived from 'const std::reverse_iterator<_Iterator>' 54 | if ((k == 1 || (!adj[i].empty() && (adj[i][0] != D[i][j] || adj[i].back() != D[i][j])) && !mat[i][k]) { | ^ In file included from /usr/include/c++/10/bits/stl_algobase.h:67, from /usr/include/c++/10/bits/specfun.h:45, from /usr/include/c++/10/cmath:1927, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:41, from skyscraper.cpp:1: /usr/include/c++/10/bits/stl_iterator.h:410:5: note: candidate: 'template<class _IteratorL, class _IteratorR> constexpr bool std::operator!=(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_IteratorR>&)' 410 | operator!=(const reverse_iterator<_IteratorL>& __x, | ^~~~~~~~ /usr/include/c++/10/bits/stl_iterator.h:410:5: note: template argument deduction/substitution failed: skyscraper.cpp:54:61: note: '__gnu_cxx::__alloc_traits<std::allocator<std::pair<int, int> >, std::pair<int, int> >::value_type' {aka 'std::pair<int, int>'} is not derived from 'const std::reverse_iterator<_Iterator>' 54 | if ((k == 1 || (!adj[i].empty() && (adj[i][0] != D[i][j] || adj[i].back() != D[i][j])) && !mat[i][k]) { | ^ In file included from /usr/include/c++/10/bits/stl_algobase.h:67, from /usr/include/c++/10/bits/specfun.h:45, from /usr/include/c++/10/cmath:1927, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:41, from skyscraper.cpp:1: /usr/include/c++/10/bits/stl_iterator.h:1444:5: note: candidate: 'template<class _IteratorL, class _IteratorR> constexpr bool std::operator!=(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorR>&)' 1444 | operator!=(const move_iterator<_IteratorL>& __x, | ^~~~~~~~ /usr/include/c++/10/bits/stl_iterator.h:1444:5: note: template argument deduction/substitution failed: skyscraper.cpp:54:61: note: '__gnu_cxx::__alloc_traits<std::allocator<std::pair<int, int> >, std::pair<int, int> >::value_type' {aka 'std::pair<int, int>'} is not derived from 'const std::move_iterator<_IteratorL>' 54 | if ((k == 1 || (!adj[i].empty() && (adj[i][0] != D[i][j] || adj[i].back() != D[i][j])) && !mat[i][k]) { | ^ In file included from /usr/include/c++/10/bits/stl_algobase.h:67, from /usr/include/c++/10/bits/specfun.h:45, from /usr/include/c++/10/cmath:1927, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:41, from skyscraper.cpp:1: /usr/include/c++/10/bits/stl_iterator.h:1501:5: note: candidate: 'template<class _Iterator> constexpr bool std::operator!=(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorL>&)' 1501 | operator!=(const move_iterator<_Iterator>& __x, | ^~~~~~~~ /usr/include/c++/10/bits/stl_iterator.h:1501:5: note: template argument deduction/substitution failed: skyscraper.cpp:54:61: note: '__gnu_cxx::__alloc_traits<std::allocator<std::pair<int, int> >, std::pair<int, int> >::value_type' {aka 'std::pair<int, int>'} is not derived from 'const std::move_iterator<_IteratorL>' 54 | if ((k == 1 || (!adj[i].empty() && (adj[i][0] != D[i][j] || adj[i].back() != D[i][j])) && !mat[i][k]) { | ^ In file included from /usr/include/c++/10/iosfwd:40, from /usr/include/c++/10/ios:38, from /usr/include/c++/10/istream:38, from /usr/include/c++/10/sstream:38, from /usr/include/c++/10/complex:45, from /usr/include/c++/10/ccomplex:39, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54, from skyscraper.cpp:1: /usr/include/c++/10/bits/postypes.h:227:5: note: candidate: 'template<class _StateT> bool std::operator!=(const std::fpos<_StateT>&, const std::fpos<_StateT>&)' 227 | operator!=(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs) | ^~~~~~~~ /usr/include/c++/10/bits/postypes.h:227:5: note: template argument deduction/substitution failed: skyscraper.cpp:54:61: note: '__gnu_cxx::__alloc_traits<std::allocator<std::pair<int, int> >, std::pair<int, int> >::value_type' {aka 'std::pair<int, int>'} is not derived from 'const std::fpos<_StateT>' 54 | if ((k == 1 || (!adj[i].empty() && (adj[i][0] != D[i][j] || adj[i].back() != D[i][j])) && !mat[i][k]) { | ^ In file included from /usr/include/c++/10/string:41, from /usr/include/c++/10/bits/locale_classes.h:40, from /usr/include/c++/10/bits/ios_base.h:41, from /usr/include/c++/10/ios:42, from /usr/include/c++/10/istream:38, from /usr/include/c++/10/sstream:38, from /usr/include/c++/10/complex:45, from /usr/include/c++/10/ccomplex:39, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54, from skyscraper.cpp:1: /usr/include/c++/10/bits/allocator.h:213:5: note: candidate: 'template<class _T1, class _T2> bool std::operator!=(const std::allocator<_CharT>&, const std::allocator<_T2>&)' 213 | operator!=(const allocator<_T1>&, const allocator<_T2>&) | ^~~~~~~~ /usr/include/c++/10/bits/allocator.h:213:5: note: template argument deduction/substitution failed: skyscraper.cpp:54:61: note: '__gnu_cxx::__alloc_traits<std::allocator<std::pair<int, int> >, std::pair<int, int> >::value_type' {aka 'std::pair<int, int>'} is not derived from 'const std::allocator<_CharT>' 54 | if ((k == 1 || (!adj[i].empty() && (adj[i][0] != D[i][j] || adj[i].back() != D[i][j])) && !mat[i][k]) { | ^ In file included from /usr/include/c++/10/bits/basic_string.h:48, from /usr/include/c++/10/string:55, from /usr/include/c++/10/bits/locale_classes.h:40, from /usr/include/c++/10/bits/ios_base.h:41, from /usr/include/c++/10/ios:42, from /usr/include/c++/10/istream:38, from /usr/include/c++/10/sstream:38, from /usr/include/c++/10/complex:45, from /usr/include/c++/10/ccomplex:39, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54, from skyscraper.cpp:1: /usr/include/c++/10/string_view:525:5: note: candidate: 'template<class _CharT, class _Traits> constexpr bool std::operator!=(std::basic_string_view<_CharT, _Traits>, std::basic_string_view<_CharT, _Traits>)' 525 | operator!=(basic_string_view<_CharT, _Traits> __x, | ^~~~~~~~ /usr/include/c++/10/string_view:525:5: note: template argument deduction/substitution failed: skyscraper.cpp:54:61: note: 'std::pair<int, int>' is not derived from 'std::basic_string_view<_CharT, _Traits>' 54 | if ((k == 1 || (!adj[i].empty() && (adj[i][0] != D[i][j] || adj[i].back() != D[i][j])) && !mat[i][k]) { | ^ In file included from /usr/include/c++/10/bits/basic_string.h:48, from /usr/include/c++/10/string:55, from /usr/include/c++/10/bits/locale_classes.h:40, from /usr/include/c++/10/bits/ios_base.h:41, from /usr/include/c++/10/ios:42, from /usr/include/c++/10/istream:38, from /usr/include/c++/10/sstream:38, from /usr/include/c++/10/complex:45, from /usr/include/c++/10/ccomplex:39, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54, from skyscraper.cpp:1: /usr/include/c++/10/string_view:531:5: note: candidate: 'template<class _CharT, class _Traits> constexpr bool std::operator!=(std::basic_string_view<_CharT, _Traits>, std::__type_identity_t<std::basic_string_view<_CharT, _Traits> >)' 531 | operator!=(basic_string_view<_CharT, _Traits> __x, | ^~~~~~~~ /usr/include/c++/10/string_view:531:5: note: template argument deduction/substitution failed: skyscraper.cpp:54:61: note: 'std::pair<int, int>' is not derived from 'std::basic_string_view<_CharT, _Traits>'