#include<bits/stdc++.h>
#define Freopen(x) freopen(x".in","r",stdin);freopen(x".out","w",stdout);
#define lcm(x,y) x/__gcd(x,y)*y;
#define lb(x) (x&-x)
#define str to_string
#define Made return
#define by 0
#define _3_14 ;
using namespace std;
using ll=long long;
const double EPS=1e-6,PAI=acos(-1.0);
const int MAX=1e5+1;
struct Nodex{
int x,y;
bool operator()(const Nodex&a,const Nodex&b)const{
if(a.x==b.x)return a.y<b.y;
return a.x<b.x;
}
}a[MAX];
struct Nodey{
int x,y;
bool operator()(const Nodey&a,const Nodey&b)const{
if(a.x==b.x)return a.y>b.y;
return a.x>b.x;
}
}b[MAX];
priority_queue<Nodex>W;
priority_queue<Nodey>B;
int n,m;
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
int x,y;
char color;
cin>>x>>y>>color;
if(color=='B')B.push({x,y});
if(color=='W')W.push({x,y});
}
Nodex w=W.top();
Nodey b=B.top();
if(w.x<=b.x&&w.y<=b.y)cout<<"No\n";
else cout<<"Yes\n";
Made by _3_14
}
洛谷报错信息,没有编译器报错信息因为文件报错了。
In file included from /usr/include/c++/12/string:48,
from /usr/include/c++/12/bits/locale_classes.h:40,
from /usr/include/c++/12/bits/ios_base.h:41,
from /usr/include/c++/12/ios:42,
from /usr/include/c++/12/istream:38,
from /usr/include/c++/12/sstream:38,
from /usr/include/c++/12/complex:45,
from /usr/include/c++/12/ccomplex:39,
from /usr/include/x86_64-linux-gnu/c++/12/bits/stdc++.h:54,
from Main.cpp:2:
/usr/include/c++/12/bits/stl_function.h: In instantiation of ‘constexpr bool std::less<_Tp>::operator()(const _Tp&, const _Tp&) const [with _Tp = Nodey]’:
/usr/include/c++/12/bits/predefined_ops.h:196:23: required from ‘bool __gnu_cxx::__ops::_Iter_comp_val<_Compare>::operator()(_Iterator, _Value&) [with _Iterator = __gnu_cxx::__normal_iterator<Nodey*, std::vector<Nodey, std::allocator<Nodey> > >; _Value = Nodey; _Compare = std::less<Nodey>]’
/usr/include/c++/12/bits/stl_heap.h:140:48: required from ‘void std::__push_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare&) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<Nodey*, vector<Nodey, allocator<Nodey> > >; _Distance = long int; _Tp = Nodey; _Compare = __gnu_cxx::__ops::_Iter_comp_val<less<Nodey> >]’
/usr/include/c++/12/bits/stl_heap.h:216:23: required from ‘void std::push_heap(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator<Nodey*, vector<Nodey, allocator<Nodey> > >; _Compare = less<Nodey>]’
/usr/include/c++/12/bits/stl_queue.h:749:16: required from ‘void std::priority_queue<_Tp, _Sequence, _Compare>::push(value_type&&) [with _Tp = Nodey; _Sequence = std::vector<Nodey, std::allocator<Nodey> >; _Compare = std::less<Nodey>; value_type = Nodey]’
Main.cpp:37:23: required from here
/usr/include/c++/12/bits/stl_function.h:408:20: error: no match for ‘operator<’ (operand types are ‘const Nodey’ and ‘const Nodey’)
408 | { return __x < __y; }
| ~~~~^~~~~
In file included from /usr/include/c++/12/bits/stl_algobase.h:64,
from /usr/include/c++/12/bits/specfun.h:45,
from /usr/include/c++/12/cmath:1935,
from /usr/include/x86_64-linux-gnu/c++/12/bits/stdc++.h:41:
/usr/include/c++/12/bits/stl_pair.h:663:5: note: candidate: ‘template<class _T1, class _T2> constexpr bool std::operator<(const pair<_T1, _T2>&, const pair<_T1, _T2>&)’
663 | operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
| ^~~~~~~~
/usr/include/c++/12/bits/stl_pair.h:663:5: note: template argument deduction/substitution failed:
/usr/include/c++/12/bits/stl_function.h:408:20: note: ‘const Nodey’ is not derived from ‘const std::pair<_T1, _T2>’
408 | { return __x < __y; }
| ~~~~^~~~~
In file included from /usr/include/c++/12/bits/stl_algobase.h:67:
/usr/include/c++/12/bits/stl_iterator.h:451:5: note: candidate: ‘template<class _Iterator> constexpr bool std::operator<(const reverse_iterator<_Iterator>&, const reverse_iterator<_Iterator>&)’
451 | operator<(const reverse_iterator<_Iterator>& __x,
| ^~~~~~~~
/usr/include/c++/12/bits/stl_iterator.h:451:5: note: template argument deduction/substitution failed:
/usr/include/c++/12/bits/stl_function.h:408:20: note: ‘const Nodey’ is not derived from ‘const std::reverse_iterator<_Iterator>’
408 | { return __x < __y; }
| ~~~~^~~~~
/usr/include/c++/12/bits/stl_iterator.h:496:5: note: candidate: ‘template<class _IteratorL, class _IteratorR> constexpr bool std::operator<(const reverse_iterator<_Iterator>&, const reverse_iterator<_IteratorR>&)’
496 | operator<(const reverse_iterator<_IteratorL>& __x,
| ^~~~~~~~
/usr/include/c++/12/bits/stl_iterator.h:496:5: note: template argument deduction/substitution failed:
/usr/include/c++/12/bits/stl_function.h:408:20: note: ‘const Nodey’ is not derived from ‘const std::reverse_iterator<_Iterator>’
408 | { return __x < __y; }
| ~~~~^~~~~
/usr/include/c++/12/bits/stl_iterator.h:1683:5: note: candidate: ‘template<class _IteratorL, class _IteratorR> constexpr bool std::operator<(const move_iterator<_IteratorL>&, const move_iterator<_IteratorR>&)’
1683 | operator<(const move_iterator<_IteratorL>& __x,
| ^~~~~~~~
/usr/include/c++/12/bits/stl_iterator.h:1683:5: note: template argument deduction/substitution failed:
/usr/include/c++/12/bits/stl_function.h:408:20: note: ‘const Nodey’ is not derived from ‘const std::move_iterator<_IteratorL>’
408 | { return __x < __y; }
| ~~~~^~~~~
/usr/include/c++/12/bits/stl_iterator.h:1748:5: note: candidate: ‘template<class _Iterator> constexpr bool std::operator<(const move_iterator<_IteratorL>&, const move_iterator<_IteratorL>&)’
1748 | operator<(const move_iterator<_Iterator>& __x,
| ^~~~~~~~
/usr/include/c++/12/bits/stl_iterator.h:1748:5: note: template argument deduction/substitution failed:
/usr/include/c++/12/bits/stl_function.h:408:20: note: ‘const Nodey’ is not derived from ‘const std::move_iterator<_IteratorL>’
408 | { return __x < __y; }
| ~~~~^~~~~
/usr/include/c++/12/bits/stl_function.h: In instantiation of ‘constexpr bool std::less<_Tp>::operator()(const _Tp&, const _Tp&) const [with _Tp = Nodex]’:
/usr/include/c++/12/bits/predefined_ops.h:196:23: required from ‘bool __gnu_cxx::__ops::_Iter_comp_val<_Compare>::operator()(_Iterator, _Value&) [with _Iterator = __gnu_cxx::__normal_iterator<Nodex*, std::vector<Nodex, std::allocator<Nodex> > >; _Value = Nodex; _Compare = std::less<Nodex>]’
/usr/include/c++/12/bits/stl_heap.h:140:48: required from ‘void std::__push_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare&) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<Nodex*, vector<Nodex, allocator<Nodex> > >; _Distance = long int; _Tp = Nodex; _Compare = __gnu_cxx::__ops::_Iter_comp_val<less<Nodex> >]’
/usr/include/c++/12/bits/stl_heap.h:216:23: required from ‘void std::push_heap(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator<Nodex*, vector<Nodex, allocator<Nodex> > >; _Compare = less<Nodex>]’
/usr/include/c++/12/bits/stl_queue.h:749:16: required from ‘void std::priority_queue<_Tp, _Sequence, _Compare>::push(value_type&&) [with _Tp = Nodex; _Sequence = std::vector<Nodex, std::allocator<Nodex> >; _Compare = std::less<Nodex>; value_type = Nodex]’
Main.cpp:38:23: required from here
/usr/include/c++/12/bits/stl_function.h:408:20: error: no match for ‘operator<’ (operand types are ‘const Nodex’ and ‘const Nodex’)
/usr/include/c++/12/bits/stl_pair.h:663:5: note: candidate: ‘template<class _T1, class _T2> constexpr bool std::operator<(const pair<_T1, _T2>&, const pair<_T1, _T2>&)’
663 | operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
| ^~~~~~~~
/usr/include/c++/12/bits/stl_pair.h:663:5: note: template argument deduction/substitution failed:
/usr/include/c++/12/bits/stl_function.h:408:20: note: ‘const Nodex’ is not derived from ‘const std::pair<_T1, _T2>’
408 | { return __x < __y; }
| ~~~~^~~~~
/usr/include/c++/12/bits/stl_iterator.h:451:5: note: candidate: ‘template<class _Iterator> constexpr bool std::operator<(const reverse_iterator<_Iterator>&, const reverse_iterator<_Iterator>&)’
451 | operator<(const reverse_iterator<_Iterator>& __x,
| ^~~~~~~~
/usr/include/c++/12/bits/stl_iterator.h:451:5: note: template argument deduction/substitution failed:
/usr/include/c++/12/bits/stl_function.h:408:20: note: ‘const Nodex’ is not derived from ‘const std::reverse_iterator<_Iterator>’
408 | { return __x < __y; }
| ~~~~^~~~~
/usr/include/c++/12/bits/stl_iterator.h:496:5: note: candidate: ‘template<class _IteratorL, class _IteratorR> constexpr bool std::operator<(const reverse_iterator<_Iterator>&, const reverse_iterator<_IteratorR>&)’
496 | operator<(const reverse_iterator<_IteratorL>& __x,
| ^~~~~~~~
/usr/include/c++/12/bits/stl_iterator.h:496:5: note: template argument deduction/substitution failed:
/usr/include/c++/12/bits/stl_function.h:408:20: note: ‘const Nodex’ is not derived from ‘const std::reverse_iterator<_Iterator>’
408 | { return __x < __y; }
| ~~~~^~~~~
/usr/include/c++/12/bits/stl_iterator.h:1683:5: note: candidate: ‘template<class _IteratorL, class _IteratorR> constexpr bool std::operator<(const move_iterator<_IteratorL>&, const move_iterator<_IteratorR>&)’
1683 | operator<(const move_iterator<_IteratorL>& __x,
| ^~~~~~~~
/usr/include/c++/12/bits/stl_iterator.h:1683:5: note: template argument deduction/substitution failed:
/usr/include/c++/12/bits/stl_function.h:408:20: note: ‘const Nodex’ is not derived from ‘const std::move_iterator<_IteratorL>’
408 | { return __x < __y; }
| ~~~~^~~~~
/usr/include/c++/12/bits/stl_iterator.h:1748:5: note: candidate: ‘template<class _Iterator> constexpr bool std::operator<(const move_iterator<_IteratorL>&, const move_iterator<_IteratorL>&)’
1748 | operator<(const move_iterator<_Iterator>& __x,
| ^~~~~~~~
/usr/include/c++/12/bits/stl_iterator.h:1748:5: note: template argument deduction/substitution failed:
/usr/include/c++/12/bits/stl_function.h:408:20: note: ‘const Nodex’ is not derived from ‘const std::move_iterator<_IteratorL>’
408 | { return __x < __y; }
| ~~~~^~~~~