# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1108948 | codinion | Poi (IOI09_poi) | C++14 | 컴파일 에러 | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
// https://oj.uz/problem/view/IOI09_poi
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
class Player {
public:
bool operator<=(Player const& obj) {
return this->score == obj.score ? this->count>obj.count : this->score > obj.score;
}
Player() {
score = 0;
count = 0;
isPhilip = false;
}
void updateScore(int score) {
this->score = score;
}
void updateCount(int count) {
this->count = count;
}
int getScore() {return score;}
vector<int> tasks;
bool isPhilip;
private:
int score;
int count;
};
int main()
{
int N,T,P;
cin>>N;
cin>>T;
cin>>P;
int* solved = new int[T];
Player* arr = new Player[N];
for(int i=0;i<N;i++) {
int cc = 0;
for(int t = 0;t<T;t++) {
int kt;
cin>>kt;
cc+=kt;
if(kt == 1)
solved[t]++;
(arr[i].tasks).push_back(kt);
}
arr[i].updateCount(cc);
if(i==P-1)
arr[i].isPhilip = true;
}
for(int i=0;i<N;i++) {
int ss = 0;
for(int t = 0;t<T;t++) {
ss+= ( (arr[i].tasks)[t] * (N-solved[t]));
}
arr[i].updateScore(ss);
}
sort(arr, arr+N);
for(int i=0;i<N;i++)
{
// cout<<"Arr i : "<<i;
// cout<<" tasks:";
// for(int t:arr[i].tasks)
// {
// cout<<" "<<t;
// }
// cout<<" Philip : "<<(arr[i].isPhilip?"Y":"N");
// cout<<endl;
if(arr[i].isPhilip) {
cout<<arr[i].getScore()<<" "<<i+1<<endl;
}
}
}
컴파일 시 표준 에러 (stderr) 메시지
In file included from /usr/include/c++/10/bits/stl_algobase.h:71, from /usr/include/c++/10/bits/char_traits.h:39, from /usr/include/c++/10/ios:40, from /usr/include/c++/10/ostream:38, from /usr/include/c++/10/iostream:39, from poi.cpp:3: /usr/include/c++/10/bits/predefined_ops.h: In instantiation of 'constexpr bool __gnu_cxx::__ops::_Iter_less_iter::operator()(_Iterator1, _Iterator2) const [with _Iterator1 = Player*; _Iterator2 = Player*]': /usr/include/c++/10/bits/stl_algo.h:82:17: required from 'void std::__move_median_to_first(_Iterator, _Iterator, _Iterator, _Iterator, _Compare) [with _Iterator = Player*; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' /usr/include/c++/10/bits/stl_algo.h:1924:34: required from '_RandomAccessIterator std::__unguarded_partition_pivot(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = Player*; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' /usr/include/c++/10/bits/stl_algo.h:1958:38: required from 'void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = Player*; _Size = long int; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' /usr/include/c++/10/bits/stl_algo.h:1974:25: required from 'void std::__sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = Player*; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' /usr/include/c++/10/bits/stl_algo.h:4859:18: required from 'void std::sort(_RAIter, _RAIter) [with _RAIter = Player*]' poi.cpp:67:20: required from here /usr/include/c++/10/bits/predefined_ops.h:43:23: error: no match for 'operator<' (operand types are 'Player' and 'Player') 43 | { return *__it1 < *__it2; } | ~~~~~~~^~~~~~~~ In file included from /usr/include/c++/10/bits/stl_algobase.h:67, from /usr/include/c++/10/bits/char_traits.h:39, from /usr/include/c++/10/ios:40, from /usr/include/c++/10/ostream:38, from /usr/include/c++/10/iostream:39, from poi.cpp:3: /usr/include/c++/10/bits/stl_iterator.h:1096:5: note: candidate: 'template<class _IteratorL, class _IteratorR, class _Container> bool __gnu_cxx::operator<(const __gnu_cxx::__normal_iterator<_IteratorL, _Container>&, const __gnu_cxx::__normal_iterator<_IteratorR, _Container>&)' 1096 | operator<(const __normal_iterator<_IteratorL, _Container>& __lhs, | ^~~~~~~~ /usr/include/c++/10/bits/stl_iterator.h:1096:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/10/bits/stl_algobase.h:71, from /usr/include/c++/10/bits/char_traits.h:39, from /usr/include/c++/10/ios:40, from /usr/include/c++/10/ostream:38, from /usr/include/c++/10/iostream:39, from poi.cpp:3: /usr/include/c++/10/bits/predefined_ops.h:43:23: note: 'Player' is not derived from 'const __gnu_cxx::__normal_iterator<_IteratorL, _Container>' 43 | { return *__it1 < *__it2; } | ~~~~~~~^~~~~~~~ In file included from /usr/include/c++/10/bits/stl_algobase.h:67, from /usr/include/c++/10/bits/char_traits.h:39, from /usr/include/c++/10/ios:40, from /usr/include/c++/10/ostream:38, from /usr/include/c++/10/iostream:39, from poi.cpp:3: /usr/include/c++/10/bits/stl_iterator.h:1104:5: note: candidate: 'template<class _Iterator, class _Container> bool __gnu_cxx::operator<(const __gnu_cxx::__normal_iterator<_Iterator, _Container>&, const __gnu_cxx::__normal_iterator<_Iterator, _Container>&)' 1104 | operator<(const __normal_iterator<_Iterator, _Container>& __lhs, | ^~~~~~~~ /usr/include/c++/10/bits/stl_iterator.h:1104:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/10/bits/stl_algobase.h:71, from /usr/include/c++/10/bits/char_traits.h:39, from /usr/include/c++/10/ios:40, from /usr/include/c++/10/ostream:38, from /usr/include/c++/10/iostream:39, from poi.cpp:3: /usr/include/c++/10/bits/predefined_ops.h:43:23: note: 'Player' is not derived from 'const __gnu_cxx::__normal_iterator<_Iterator, _Container>' 43 | { return *__it1 < *__it2; } | ~~~~~~~^~~~~~~~ /usr/include/c++/10/bits/predefined_ops.h: In instantiation of 'bool __gnu_cxx::__ops::_Val_less_iter::operator()(_Value&, _Iterator) const [with _Value = Player; _Iterator = Player*]': /usr/include/c++/10/bits/stl_algo.h:1826:20: required from 'void std::__unguarded_linear_insert(_RandomAccessIterator, _Compare) [with _RandomAccessIterator = Player*; _Compare = __gnu_cxx::__ops::_Val_less_iter]' /usr/include/c++/10/bits/stl_algo.h:1854:36: required from 'void std::__insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = Player*; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' /usr/include/c++/10/bits/stl_algo.h:1886:25: required from 'void std::__final_insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = Player*; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' /usr/include/c++/10/bits/stl_algo.h:1977:31: required from 'void std::__sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = Player*; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' /usr/include/c++/10/bits/stl_algo.h:4859:18: required from 'void std::sort(_RAIter, _RAIter) [with _RAIter = Player*]' poi.cpp:67:20: required from here /usr/include/c++/10/bits/predefined_ops.h:96:22: error: no match for 'operator<' (operand types are 'Player' and 'Player') 96 | { return __val < *__it; } | ~~~~~~^~~~~~~ In file included from /usr/include/c++/10/bits/stl_algobase.h:67, from /usr/include/c++/10/bits/char_traits.h:39, from /usr/include/c++/10/ios:40, from /usr/include/c++/10/ostream:38, from /usr/include/c++/10/iostream:39, from poi.cpp:3: /usr/include/c++/10/bits/stl_iterator.h:1096:5: note: candidate: 'template<class _IteratorL, class _IteratorR, class _Container> bool __gnu_cxx::operator<(const __gnu_cxx::__normal_iterator<_IteratorL, _Container>&, const __gnu_cxx::__normal_iterator<_IteratorR, _Container>&)' 1096 | operator<(const __normal_iterator<_IteratorL, _Container>& __lhs, | ^~~~~~~~ /usr/include/c++/10/bits/stl_iterator.h:1096:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/10/bits/stl_algobase.h:71, from /usr/include/c++/10/bits/char_traits.h:39, from /usr/include/c++/10/ios:40, from /usr/include/c++/10/ostream:38, from /usr/include/c++/10/iostream:39, from poi.cpp:3: /usr/include/c++/10/bits/predefined_ops.h:96:22: note: 'Player' is not derived from 'const __gnu_cxx::__normal_iterator<_IteratorL, _Container>' 96 | { return __val < *__it; } | ~~~~~~^~~~~~~ In file included from /usr/include/c++/10/bits/stl_algobase.h:67, from /usr/include/c++/10/bits/char_traits.h:39, from /usr/include/c++/10/ios:40, from /usr/include/c++/10/ostream:38, from /usr/include/c++/10/iostream:39, from poi.cpp:3: /usr/include/c++/10/bits/stl_iterator.h:1104:5: note: candidate: 'template<class _Iterator, class _Container> bool __gnu_cxx::operator<(const __gnu_cxx::__normal_iterator<_Iterator, _Container>&, const __gnu_cxx::__normal_iterator<_Iterator, _Container>&)' 1104 | operator<(const __normal_iterator<_Iterator, _Container>& __lhs, | ^~~~~~~~ /usr/include/c++/10/bits/stl_iterator.h:1104:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/10/bits/stl_algobase.h:71, from /usr/include/c++/10/bits/char_traits.h:39, from /usr/include/c++/10/ios:40, from /usr/include/c++/10/ostream:38, from /usr/include/c++/10/iostream:39, from poi.cpp:3: /usr/include/c++/10/bits/predefined_ops.h:96:22: note: 'Player' is not derived from 'const __gnu_cxx::__normal_iterator<_Iterator, _Container>' 96 | { return __val < *__it; } | ~~~~~~^~~~~~~ /usr/include/c++/10/bits/predefined_ops.h: In instantiation of 'bool __gnu_cxx::__ops::_Iter_less_val::operator()(_Iterator, _Value&) const [with _Iterator = Player*; _Value = Player]': /usr/include/c++/10/bits/stl_heap.h:139:48: required from 'void std::__push_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare&) [with _RandomAccessIterator = Player*; _Distance = long int; _Tp = Player; _Compare = __gnu_cxx::__ops::_Iter_less_val]' /usr/include/c++/10/bits/stl_heap.h:246:23: required from 'void std::__adjust_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare) [with _RandomAccessIterator = Player*; _Distance = long int; _Tp = Player; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' /usr/include/c++/10/bits/stl_heap.h:355:22: required from 'void std::__make_heap(_RandomAccessIterator, _RandomAccessIterator, _Compare&) [with _RandomAccessIterator = Player*; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' /usr/include/c++/10/bits/stl_algo.h:1666:23: required from 'void std::__heap_select(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = Player*; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' /usr/include/c++/10/bits/stl_algo.h:1937:25: required from 'void std::__partial_sort(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = Player*; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' /usr/include/c++/10/bits/stl_algo.h:1953:27: required from 'void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = Player*; _Size = long int; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' /usr/include/c++/10/bits/stl_algo.h:1974:25: required from 'void std::__sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = Player*; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' /usr/include/c++/10/bits/stl_algo.h:4859:18: required from 'void std::sort(_RAIter, _RAIter) [with _RAIter = Player*]' poi.cpp:67:20: required from here /usr/include/c++/10/bits/predefined_ops.h:67:22: error: no match for 'operator<' (operand types are 'Player' and 'Player') 67 | { return *__it < __val; } | ~~~~~~^~~~~~~ In file included from /usr/include/c++/10/bits/stl_algobase.h:67, from /usr/include/c++/10/bits/char_traits.h:39, from /usr/include/c++/10/ios:40, from /usr/include/c++/10/ostream:38, from /usr/include/c++/10/iostream:39, from poi.cpp:3: /usr/include/c++/10/bits/stl_iterator.h:1096:5: note: candidate: 'template<class _IteratorL, class _IteratorR, class _Container> bool __gnu_cxx::operator<(const __gnu_cxx::__normal_iterator<_IteratorL, _Container>&, const __gnu_cxx::__normal_iterator<_IteratorR, _Container>&)' 1096 | operator<(const __normal_iterator<_IteratorL, _Container>& __lhs, | ^~~~~~~~ /usr/include/c++/10/bits/stl_iterator.h:1096:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/10/bits/stl_algobase.h:71, from /usr/include/c++/10/bits/char_traits.h:39, from /usr/include/c++/10/ios:40, from /usr/include/c++/10/ostream:38, from /usr/include/c++/10/iostream:39, from poi.cpp:3: /usr/include/c++/10/bits/predefined_ops.h:67:22: note: 'Player' is not derived from 'const __gnu_cxx::__normal_iterator<_IteratorL, _Container>' 67 | { return *__it < __val; } | ~~~~~~^~~~~~~ In file included from /usr/include/c++/10/bits/stl_algobase.h:67, from /usr/include/c++/10/bits/char_traits.h:39, from /usr/include/c++/10/ios:40, from /usr/include/c++/10/ostream:38, from /usr/include/c++/10/iostream:39, from poi.cpp:3: /usr/include/c++/10/bits/stl_iterator.h:1104:5: note: candidate: 'template<class _Iterator, class _Container> bool __gnu_cxx::operator<(const __gnu_cxx::__normal_iterator<_Iterator, _Container>&, const __gnu_cxx::__normal_iterator<_Iterator, _Container>&)' 1104 | operator<(const __normal_iterator<_Iterator, _Container>& __lhs, | ^~~~~~~~ /usr/include/c++/10/bits/stl_iterator.h:1104:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/10/bits/stl_algobase.h:71, from /usr/include/c++/10/bits/char_traits.h:39, from /usr/include/c++/10/ios:40, from /usr/include/c++/10/ostream:38, from /usr/include/c++/10/iostream:39, from poi.cpp:3: /usr/include/c++/10/bits/predefined_ops.h:67:22: note: 'Player' is not derived from 'const __gnu_cxx::__normal_iterator<_Iterator, _Container>' 67 | { return *__it < __val; } | ~~~~~~^~~~~~~