#ifndef GCLIST_H
#define GCLIST_H

#include "catalog.h"
#include "persons.h"
#include "stage.h"
#include <list>

struct GCEntry {
  const Cyclist *rider=0;
  int totalDelay;
};

class GCList {
private:
  std::list<GCEntry> gc_;

public:
  GCList(const CyclistCatalog &cc);
  void ApplyStage(const Stage& st);
  inline int Size() { return gc_.size(); }
  std::string GetClassification(int n);
  inline const std::list<GCEntry> &GetClassification() const { return gc_; }
  void NormalizeDelays();
};

#endif