Language: C++

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int m,t,p,r;
struct team{
int id;
int ac;
int time[100];
bool ok[200];
};

int or(team a,team b){//aのほうが強ければ1,bなら0,同じなら2

if(a.ac>b.ac)return 1;
else if(a.ac<b.ac)return 0;
int at=0,bt=0;
for(int i=0;i<=p;i++){
if(a.ok[i]==true)at+=a.time[i];
if(b.ok[i]==true)bt+=b.time[i];
}
if(at<bt)return 1;
else if(at>bt)return 0;
else return 2;
}
int main(){

	while(true){
	cin>>m>>t>>p>>r;
	if(m+t+p+r==0)break;
	vector<team>ta(0);
	ta.resize(200);

	for(int i=0;i<=t;i++)for(int j=0;j<200;j++)ta[i].time[j]=0,ta[i].ok[j]=0;
	for(int i=0;i<=t;i++)ta[i].id=i,ta[i].ac=0;
	for(int i=0;i<r;i++){
	int a,b,c,d;
	cin>>a>>b>>c>>d;//a:経過時間:bチーム番号c:問題番号j:0奈良正解それ以外不正解
	if(d==0){
	ta[b].time[c]+=a;
	ta[b].ac++;
	ta[b].ok[c]=true;
	}
	else {
	ta[b].time[c]+=20;
	}
	}
	ta.erase(ta.begin());
	for(int i=0;i<t;i++){
	for(int j=0;j<t;j++){
	if(or(ta[i],ta[j])==1)swap(ta[i],ta[j]);
	if(or(ta[i],ta[j])==2&&ta[i].id>ta[j].id)swap(ta[i],ta[j]);
	}
	}
	for(int i=0;i<t-1;i++){
	if(or(ta[i],ta[i+1])!=2)cout<<ta[i].id<<",";
	else cout<<ta[i].id<<"=";
	}
	cout<<ta[t-1].id<<endl;
	}
	return 0;
}

Compiler output:
a.cc:13:5: error: expected unqualified-id before 'or' token
   13 | int or(team a,team b){//aのほうが強ければ1,bなら0,同じなら2
      |     ^~
a.cc: In function 'int main()':
a.cc:51:12: error: expected primary-expression before 'or' token
   51 |         if(or(ta[i],ta[j])==1)swap(ta[i],ta[j]);
      |            ^~
a.cc:51:19: warning: ignoring return value of 'std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](size_type) [with _Tp = team; _Alloc = std::allocator<team>; reference = team&; size_type = long unsigned int]', declared with attribute 'nodiscard' [-Wunused-result]
   51 |         if(or(ta[i],ta[j])==1)swap(ta[i],ta[j]);
      |                   ^
In file included from /usr/include/c++/14/vector:66,
                 from a.cc:2:
/usr/include/c++/14/bits/stl_vector.h:1128:7: note: declared here
 1128 |       operator[](size_type __n) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~
a.cc:51:27: error: no match for 'operator==' (operand types are '__gnu_cxx::__alloc_traits<std::allocator<team>, team>::value_type' {aka 'team'} and 'int')
   51 |         if(or(ta[i],ta[j])==1)swap(ta[i],ta[j]);
      |              ~~~~~~~~~~~~~^~~
      |                    |        |
      |                    |        int
      |                    __gnu_cxx::__alloc_traits<std::allocator<team>, team>::value_type {aka team}
In file included from /usr/include/c++/14/iosfwd:42,
                 from /usr/include/c++/14/ios:40,
                 from /usr/include/c++/14/ostream:40,
                 from /usr/include/c++/14/iostream:41,
                 from a.cc:1:
/usr/include/c++/14/bits/postypes.h:192:5: note: candidate: 'template<class _StateT> bool std::operator==(const fpos<_StateT>&, const fpos<_StateT>&)'
  192 |     operator==(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs)
      |     ^~~~~~~~
/usr/include/c++/14/bits/postypes.h:192:5: note:   template argument deduction/substitution failed:
a.cc:51:29: note:   '__gnu_cxx::__alloc_traits<std::allocator<team>, team>::value_type' {aka 'team'} is not derived from 'const std::fpos<_StateT>'
   51 |         if(or(ta[i],ta[j])==1)swap(ta[i],ta[j]);
      |                             ^
In file included from /usr/include/c++/14/string:43,
                 from /usr/include/c++/14/bits/locale_classes.h:40,
                 from /usr/include/c++/14/bits/ios_base.h:41,
                 from /usr/include/c++/14/ios:44:
/usr/include/c++/14/bits/allocator.h:235:5: note: candidate: 'template<class _T1, class _T2> bool std::operator==(const allocator<_CharT>&, const allocator<_T2>&)'
  235 |     operator==(const allocator<_T1>&, const allocator<_T2>&)
      |     ^~~~~~~~
/usr/include/c++/14/bits/allocator.h:235:5: note:   template argument deduction/substitution failed:
a.cc:51:29: note:   '__gnu_cxx::__alloc_traits<std::allocator<team>, team>::value_type' {aka 'team'} is not derived from 'const std::allocator<_CharT>'
   51 |         if(or(ta[i],ta[j])==1)swap(ta[i],ta[j]);
      |                             ^
In file included from /usr/include/c++/14/string:48:
/usr/include/c++/14/bits/stl_iterator.h:441:5: note: candidate: 'template<class _Iterator> constexpr bool std::operator==(const reverse_iterator<_Iterator>&, const reverse_iterator<_Iterator>&)'
  441 |     operator==(const reverse_iterator<_Iterator>& __x,
      |     ^~~~~~~~
/usr/include/c++/14/bits/stl_iterator.h:441:5: note:   template argument deduction/substitution failed:
a.cc:51:29: note:   '__gnu_cxx::__alloc_traits<std::allocator<team>, team>::value_type' {aka 'team'} is not derived from 'const std::reverse_iterator<_Iterator>'
   51 |         if(or(ta[i],ta[j])==1)swap(ta[i],ta[j]);
      |                             ^
/usr/include/c++/14/bits/stl_iterator.h:486:5: note: candidate: 'template<class _IteratorL, class _IteratorR> constexpr bool std::operator==(const reverse_iterator<_Iterator>&, const reverse_iterator<_IteratorR>&)'
  486 |     operator==(const reverse_iterator<_IteratorL>& __x,
      |     ^~~~~~~~
/usr/include/c++/14/bits/stl_iterator.h:486:5: note:   template argument deduction/substitution failed:
a.cc:51:29: note:   '__gnu_cxx::__alloc_traits<std::allocator<team>, team>::value_type' {aka 'team'} is not derived from 'const std::reverse_iterator<_Iterator>'
   51 |         if(or(ta[i],ta[j])==1)swap(ta[i],ta[j]);
      |                             ^
/usr/include/c++/14/bits/stl_iterator.h:1667:5: note: candidate: 'template<class _IteratorL, class _IteratorR> constexpr bool std::operator==(const move_iterator<_IteratorL>&, const move_iterator<_IteratorR>&)'
 1667 |     operator==(const move_iterator<_IteratorL>& __x,
      |     ^~~~~~~~
/usr/include/c++/14/bits/stl_iterator.h:1667:5: note:   template argument deduction/substitution failed:
a.cc:51:29: note:   '__gnu_cxx::__alloc_traits<std::allocator<team>, team>::value_type' {aka 'team'} is not derived from 'const std::move_iterator<_IteratorL>'
   51 |         if(or(ta[i],ta[j])==1)swap(ta[i],ta[j]);
      |                             ^
/usr/include/c++/14/bits/stl_iterator.h:1737:5: note: candidate: 'template<class _Iterator> constexpr bool std::operator==(const move_iterator<_IteratorL>&, const move_iterator<_IteratorL>&)'
 1737 |     operator==(const move_iterator<_Iterator>& __x,
      |     ^~~~~~~~
/usr/include/c++/14/bits/stl_iterator.h:1737:5: note:   template argument deduction/substitution failed:
a.cc:51:29: note:   '__gnu_cxx::__alloc_traits<std::allocator<team>, team>::value_type' {aka 'team'} is not derived from 'const std::move_iterator<_IteratorL>'
   51 |         if(or(ta[i],ta[j])==1)swap(ta[i],ta[j]);
      |                             ^
In file included from /usr/include/c++/14/bits/stl_algobase.h:64,
                 from /usr/include/c++/14/string:51:
/usr/include/c++/14/bits/stl_pair.h:1033:5: note: candidate: 'template<class _T1, class _T2> constexpr bool std::operator==(const pair<_T1, _T2>&, const pair<_T1, _T2>&)'
 1033 |     operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
      |     ^~~~~~~~
/usr/include/c++/14/bits/stl_pair.h:1033:5: note:   template argument deduction/substitution failed:
a.cc:51:29: note:   '__gnu_cxx::__alloc_traits<std::allocator<team>, team>::value_type' {aka 'team'} is not derived from 'const std::pair<_T1, _T2>'
   51 |         if(or(ta[i],ta[j])==1)swap(ta[i],ta[j]);
      |                             ^
In file included from /usr/include/c++/14/bits/basic_string.h:47,
                 from /usr/include/c++/14/string:54:
/usr/include/c++/14/string_view:629:5: note: candidate: 'template<class _CharT, class _Traits> constexpr bool std::operator==(basic_string_view<_CharT, _Traits>, __type_identity_t<basic_string_view<_CharT, _Traits> >)'
  629 |     operator==(basic_string_view<_CharT, _Traits> __x,
      |     ^~~~~~~~
/usr/include/c++/14/string_view:629:5: note:   template argument deduction/substitution failed:
a.cc:51:29: note:   'team' is not derived from 'std::basic_string_view<_CharT, _Traits>'
   51 |         if(or(ta[i],ta[j])==1)swap(ta[i],ta[j]);
      |                             ^
/usr/include/c++/14/string_view:637:5: note: candidate: 'template<class _CharT, class _Traits> constexpr bool std::operator==(basic_string_view<_CharT, _Traits>, basic_string_view<_CharT, _Traits>)'
  637 |     operator==(basic_string_view<_CharT, _Traits> __x,
      |     ^~~~~~~~
/usr/include/c++/14/string_view:637:5: note:   template argument deduction/substitution failed:
a.cc:51:29: note:   'team' is not derived from 'std::basic_string_view<_CharT, _Traits>'
   51 |         if(or(ta[i],ta[j])==1)swap(ta[i],ta[j]);
      |                             ^
/usr/include/c++/14/string_view:644:5: note: candidate: 'template<class _CharT, class _Traits> constexpr bool std::operator==(__type_identity_t<basic_string_view<_CharT, _Traits> >, basic_string_view<_CharT, _Traits>)'
  644 |     operator==(__type_identity_t<basic_string_view<_CharT, _Traits>> __x,
      |     ^~~~~~~~
/usr/include/c++/14/string_view:644:5: note:   template argument deduction/substitution failed:
a.cc:51:29: note:   mismatched types 'std::basic_string_view<_CharT, _Traits>' and 'int'
   51 |         if(or(ta[i],ta[j])==1)swap(ta[i],ta[j]);
      |                             ^
/usr/include/c++/14/bits/basic_string.h:3755:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> bool std::operator==(const __cxx11::basic_string<_CharT, _Traits, _Allocator>&, const __cxx11::basic_string<_CharT, _Traits, _Allocator>&)'
 3755 |     operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
      |     ^~~~~~~~
/usr/include/c++/14/bits/basic_string.h:3755:5: note:   template argument deduction/substitution failed:
a.cc:51:29: note:   '__gnu_cxx::__alloc_traits<std::allocator<team>, team>::value_type' {aka 'team'} is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>'
   51 |         if(or(ta[i],ta[j])==1)swap(ta[i],ta[j]);
      |                             ^
/usr/include/c++/14/bits/basic_string.h:3772:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> bool std::operator==(const __cxx11::basic_string<_CharT, _Traits, _Allocator>&, const _CharT*)'
 3772 |     operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
      |     ^~~~~~~~
/usr/include/c++/14/bits/basic_string.h:3772:5: note:   template argument deduction/substitution failed:
a.cc:51:29: note:   '__gnu_cxx::__alloc_traits<std::allocator<team>, team>::value_type' {aka 'team'} is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>'
   51 |         if(or(ta[i],ta[j])==1)swap(ta[i],ta[j]);
      |                             ^
/usr/include/c++/14/bits/basic_string.h:3819:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> bool std::operator==(const _CharT*, const __cxx11::basic_string<_CharT, _Traits, _Allocator>&)'
 3819 |     operator==(const _CharT* __lhs,
      |     ^~~~~~~~
/usr/include/c++/14/bits/basic_string.h:3819:5: note:   template argument deduction/substitution failed:
a.cc:51:29: note:   mismatched types 'const _CharT*' and 'team'
   51 |         if(or(ta[i],ta[j])==1)swap(ta[i],ta[j]);
      |