# Seats (Il codice non funziona)

**URL:** <https://forum.olinfo.it/t/seats-il-codice-non-funziona/4204>\
**Category:** Aiuto\
**Created:** [2 Dicembre 2016, 2:29pm UTC](https://forum.olinfo.it/t/seats-il-codice-non-funziona/4204 "2016-12-02T14:29:46Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Gazzara](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/g/41988e/32.png) [@Gazzara](https://forum.olinfo.it/u/Gazzara)\
**Post date:** [2 Dicembre 2016, 2:29pm UTC](https://forum.olinfo.it/t/seats-il-codice-non-funziona/4204/1 "2016-12-02T14:29:47Z")

</div>

Non riesco a capire perché non funziona.  
Ecco qui il codice:

#include   
#include   
#define MAX 100000  
using namespace std;

/\* run this program using the console pauser or add your own getch, system(“pause”) or input loop \*/  
int N,Q;  
int treno[MAX];  
char t[MAX];  
int k[MAX];  
int cont = 0;

void TrovaPostoRiservato(int postoRiservato)  
{  
if(treno[postoRiservato] != -1)  
{  
cont++;  
int PostoRiservatoDaTrovare = treno[postoRiservato];  
treno[postoRiservato] = postoRiservato;  
TrovaPostoRiservato(PostoRiservatoDaTrovare);  
}else if(treno[postoRiservato] == -1)  
{  
treno[postoRiservato] = postoRiservato;  
}  
}  
int main(int argc, char\*\* argv) {  
ifstream in(“input.txt”);  
ofstream out(“output.txt”);  
in\>\>N\>\>Q;

```
for(int i = 0;i<Q;i++)
{
	in>>t[i]>>k[i];
}
for(int i = 0;i<N;i++)
{
	treno[i] = -1;
}
for(int i = 0;i<Q;i++)
{
	int postoRiservato = k[i];
	if(t[i] == 'b')
	{
		for(int j = 0;j<=postoRiservato;j++)
		{
			if(treno[j] != -1 && j == postoRiservato)
			{
				TrovaPostoRiservato(postoRiservato);
			}
			if(treno[j] == -1)
			{
				treno[j] = postoRiservato;
			}
		}
	}else if(t[i] == 'l')
	{
		treno[postoRiservato] = -1;
	}
}

cout<<cont;
return 0;

```

}

---

<div class="post-metadata">

**Author:** ![frakkiobello](https://forum.olinfo.it/user_avatar/forum.olinfo.it/frakkiobello/32/2768_2.png) [@frakkiobello](https://forum.olinfo.it/u/frakkiobello)\
**Post date:** [2 Dicembre 2016, 3:41pm UTC](https://forum.olinfo.it/t/seats-il-codice-non-funziona/4204/2 "2016-12-02T15:41:34Z")

</div>

Il problema del codice riguarda il fatto che un passeggero non sempre si siede nel suo posto, ergo questa parte del codice:

else if(t[i] == ‘l’)  
{  
treno[postoRiservato] = -1;  
}

non è totalmente corretta perché se la persona con postoRiservato=5 trova il posto di numero 0 libero,si siederà in quest’ultimo e, quando si alzerà per andarsene (a meno che arrivi il passeggero di numero 0 a reclamare il proprio posto), bisognerà impostare treno[0] a -1 e non treno[5].
