#include <iostream>
    #include <vector>
    #include <algorithm>
    
    struct Sheep
    {
       std::string Vardas;
       std::vector<char> Fragmentas;
       int atitikme;
    };
    
    int main()
    {
      std::vector<Sheep> vec =
       {
          {"Baltukas",  {'T','A','G','C','T','T'}, 3},
          {"Bailioji",  {'A','T','G','C','A','A'}, 3},
          {"Smarkuolis",{'A','A','T','G','A','A'}, 1},
          {"Hmarkuolis",{'A','A','T','G','A','A'}, 1},
          {"Kmarkuolis",{'A','A','T','G','A','A'}, 2}
       };
    
       std::sort(vec.begin(), vec.end(), [](const Sheep& lhs, const Sheep& rhs)
          {
             return (lhs.atitikme == rhs.atitikme) ?
                lhs.Vardas < rhs.Vardas: 
                lhs.atitikme > rhs.atitikme;
          });
    
        for (const auto& it: vec)
            std::cout << it.Vardas << " " << it.atitikme << "\n";
    
        return 0;
    }

