Giux99
12 Settembre 2017, 11:08am
1
Ciao a tutti, scrivo perchè sto avendo problemi con i vari grader dei problemi delle nazionali che ci sono sulla piattaforma, dato che in locale utilizzando il codice che in piattaforma mi da 0, abbinato con un main scritto da me, il programma mi risulta corretto, quindi non riesco a capire se effettivamente ci sono errori nell’implementazione della funzione richiesta, oppure sbaglio qualcosa relativa al grader.
vi allego il codice di “nemico mortale(nemesi)”
Grazie.
#include<iostream>
using namespace std;
struct a{
vector <int> g;
};
void nuovo_gruppo();
void aggiungi(int bambino);
void smista(int N, int nemico[]) {
a gruppo[N];
int j;
gruppo[0].g.push_back(0);
int k=-1;
bool trovato =true;
int l=0;
bool primo=true;
for(int i=1;i<N;i++){
while(trovato == true){
k++;
primo=true;
trovato=false;
for(j=0;j<gruppo[k].g.size();j++){
if(nemico[i] != gruppo[k].g[j] && primo== true ){
trovato=false;
}
else {trovato=true;
primo=false;
}
}
for(j=0;j<gruppo[k].g.size();j++){
if(nemico[gruppo[k].g[j]] != i && primo== true ){
trovato=false;
}
else{trovato=true;
primo=false;
}
}
}
gruppo[k].g.push_back(i);
if(l<k){
l=k;
}
k=-1;
trovato=true;
}
for(j=0;j<=l;j++){
for(int i=0;i<gruppo[j].g.size();i++){
aggiungi(gruppo[j].g[i]);
}
nuovo_gruppo();
}
}
bortoz
12 Settembre 2017, 12:45pm
2
Ciao, incollando il codice ti ha tagliato alcune parti. Per incollarlo correttamente devi mettere tre accenti gravi (```) prima e dopo del codice.
1 Mi Piace
Giux99
12 Settembre 2017, 1:04pm
3
Grazie mille, ho corretto
bortoz
12 Settembre 2017, 1:34pm
4
Ho guardato il tuo codice, il problema è che devi creare un gruppo prima di aggiungere i bambini. Nel tuo codice i bambini di gruppo[0]
, non hanno un gruppo.
1 Mi Piace
Giux99
12 Settembre 2017, 3:58pm
5
Giux99:
#include<iostream>
using namespace std;
struct a{
vector <int> g;
};
void nuovo_gruppo();
void aggiungi(int bambino);
void smista(int N, int nemico ) {
a gruppo[N];
int j;
gruppo[0].g.push_back(0);
int k=-1;
bool trovato =true;
int l=0;
bool primo=true;
for(int i=1;i<N;i++){
while(trovato == true){
k++;
primo=true;
trovato=false;
for(j=0;j<gruppo[k].g.size();j++){
if(nemico[i] != gruppo[k].g[j] && primo== true ){
trovato=false;
}
else {trovato=true;
primo=false;
}
}
for(j=0;j<gruppo[k].g.size();j++){
if(nemico[gruppo[k].g[j]] != i && primo== true ){
trovato=false;
}
else{trovato=true;
primo=false;
}
}
}
gruppo[k].g.push_back(i);
if(l<k){
l=k;
}
k=-1;
trovato=true;
}
for(j=0;j<=l;j++){
for(int i=0;i<gruppo[j].g.size();i++){
aggiungi(gruppo[j].g[i]);
}
nuovo_gruppo();
}
}
cosi facendo mi da 8.25,quindi ho bisogno di ottimizzarlo, giusto?
Giux99
12 Settembre 2017, 3:59pm
6
cosi facendo mi da 8.25,quindi ho bisogno di ottimizzarlo, giusto?
bortoz
12 Settembre 2017, 4:19pm
7
Ti consiglio di guardare questo topic
1 Mi Piace