#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
class joueur{
private:
int age;
string nom;
int carte_jaune;
vector<string> position;
vector<string> equipe_precedentes;
vector<string> coupes;
int discipline;
static int k;
public:
void aff(){
cout << age << " " << nom << " " << carte_jaune <<endl;
for (auto i = position.begin(); i < position.end(); i++)
{
cout << *i << " " ;
}cout << endl;
for (auto i = equipe_precedentes.begin(); i < equipe_precedentes.end(); i+
+){
cout << *i << " " ;
}cout << endl;
for (auto i = coupes.begin(); i < coupes.end(); i++){
cout << *i << " " ;
}cout << endl;
cout<<discipline<<endl;
}
void sup(){
if(age<20){
auto p=find(position.begin(),position.end(),"defenceur central");
if(*(p)=="defenceur central"){
position.erase(p);
}
}
}
void ajout_postion(string n){
if(n=="gardien de but"){
if(age>18 || coupes.size()>3){
if(*(find(position.begin(),position.end(),"gardien de but"))!="gardien
de but"){
position.push_back("gardien de but");
}
}
}else
if(*(find(position.begin(),position.end(),n))!=n){
position.push_back(n);
}
}
void changent_discipline(){
if (carte_jaune<=1 && age <20){
discipline++;
} else if (carte_jaune>3 || (equipe_precedentes.size()==0 && age>27)){
discipline--;
}
}
void modifier_position(string n,string a){
if(k<2) {
auto p=find(position.begin(),position.end(),a);
position[(p-position.begin())]=n;
k++;
}
}
friend class entraineur;
};
class equipe
{
private:
string name;
int nb_trophes;
vector<string> compitition;
vector<int> nb_points;
vector<joueur> joueur;
public:
void miseajour(string c,string p){
int d=find(compitition.begin(),compitition.end(),c)-compitition.begin();
if(p=="gagner"){
nb_points[d]+=3;
}else if(p=="egaliter"){
nb_points[d]+=1;
}
}
void ajouter_position(entraineur a,string p,int ag){
a.setep(p,ag);
}
void supprimer_position(entraineur a){
int i=0;
do
{
if (a.age_minimum[i]>20)
{
a.age_minimum.erase(a.age_minimum.begin()+i);
a.positions.erase(a.positions.begin()+i);
}else {
i++;
}
} while (i!=a.age_minimum.size()-1);
}
void evaluer(){
int s;
for (int i = 0; i < nb_points.size(); i++)
{
s+=nb_points[i];
}
if(nb_trophes>10){
if (s>9)
{
cout << "parfait" << endl;
}else{
cout << "bien" << endl;
}
}else if (s>9){
cout << "bien" << endl;
}else {
cout << "mauvaise" << endl;
}
}
friend class presidant;
};
class entraineur{
private:
string email;
vector<int> positions;
vector<int> age_minimum;
public:
void diminue_nb_position(joueur a){
if(a.age<16){
a.position.resize(1);
}else if(a.age>19){
a.position.resize(2);
}
}
void transfer(joueur a){
a.position.sort(a.position.begin(), a.position.end());
for (auto i = a.position.begin(); i != a.position.end(); i++)
{
if (*(i)==*(i+1) && a.discipline<2)
{
cout << "teransfer"<<a.nom;
break;
}
}
void sup(joueur a){
for(auto i=a.position.begin(); i != a.position.end(); i++){
int d=find(positions.begin(), positions.end(),*i)-positions.begin();
if (a.age<age_minimum[d])
{
i--;
a.position.erase(i+1);
}
}
void preparer_joueur(joueur a){
int b=0;
for (auto i = positions.begin(); i != positions.end(); i++)
{
for (auto it = a.position.begin(); it != a.position.end(); i++)
{
if(*it==*i){
break;
}else {
b=1;
}
}
}
if (b==1)
{
cout<<"preparation"
}
}
void setep( string p,int a){
positions.push_back(p);
age_minimum.push_back(a);
}
};
class presidant{
public:
};
int joueur::k = 0;