Aiuto projectgroup

Buongiorno, avrei bisogno d’aiuto nel preblema “projectgroup”;
questo è il mio codice:

#include
#include
#include
#define MAXN 1000

using namespace std;

typedef struct
{
int x, y, z;
} group;

bool canPutTogether(group *a, group *b)
{
if (a->x == b->x || a->x == b->y || a->x == b->z || a->y == b->x || a->y == b->y || a->y == b->z || a->z == b->x || a->z == b->y || a->z == b->z)
return false;
return true;
}

int N, M;
bool vett[MAXN][MAXN];
vector gruppi;
vector<vector<group*>> container;

int main()
{
ifstream in(“input.txt”);
ofstream out(“output.txt”);
int inA, inB;

in >> N >> M;
for (int i = 0; i < M; i++)
{
    in >> inA >> inB;
    vett[inA][inB] = true;
    vett[inB][inA] = true;
}

for (int i = 0; i < N - 2; i++)
{
    for (int j = i + 1; j < N - 1; j++)
    {
        if (vett[i][j] == true)
        {
            for (int k = j + 1; k < N; k++)
            {
                if (vett[j][k] == true)
                {
                    if (vett[k][i] == true)
                    {
                        group gruppo = {i, j, k};
                        gruppi.push_back(gruppo);
                    }
                }
            }
        }
    }
}

vector<group*> sub;
bool messo;
for (int i = 0; i < gruppi.size(); i++)
{
    messo = false;
    sub.push_back(&gruppi[i]);
    for(int j = 0; j < container.size(); j++){
        for(int k = 0; k < container[j].size() && !messo; k++){
            if(!canPutTogether(container[j][k], sub[0])){
                k = container[j].size();
            }else if(k == container[j].size() - 1){
                container.push_back(container[j]);
                container[k].push_back(sub[0]);
                messo = true;
            }
        }
    }
    container.push_back(sub);
    sub.clear();
}

vector<group*> maxG;
maxG = container[0];
for (int i = 1; i < (int)container.size(); i++)
{
    if(maxG.size() < container[i].size())
        maxG = container[i];
}

out << maxG.size() << endl;
for(int i = 0; i < maxG.size(); i++){
    out << maxG[i]->x << " " << maxG[i]->y << " " << maxG[i]->z << endl;
}

return 0;

}

e non capisco, seppur riesco a risolvere tutti i subtasks 2 e 3, perché nei 4 e 5 mi dice “Wrong output (triangles printed are not disjoint)”, potete aiutarmi?

Ho lo stesso problema, esattamente dal subtask 4 test case 17.
Per curiosità, il tuo caso peggiore in tempo qual’ è ? il mio 0.040s

0.012s, ma credo di sbagliare comunque qualcosa di importante

Mi sono messo a lavoro e sono riuscito a otternre 93 /100 . L errore è dovuto a stampare male i triangoli come dice appunto l errore XDDD

Però con il mio fantastico aiuto hai fatto 100 u.u ora zitto

1 Mi Piace

Chi non riesce a rimuovere un elemento nel vector io o tu? <3

Chi sarebbe rimasto a 30% senza di me? tu o tu? <3

Chi sarebbe rimasto a 0 ? tu o tu? finiamola qua se no andiamo avanti per sempre xD