Funzione c++

di il
1 risposte

Funzione c++

Salve a tutti.
Sono nuovo sul forum. Faccio i miei complimenti soprattutto per l'attenzione che concedete ad ogni post!

Io devo creare una funzione c++ che dati tre int x,y,k, (x!=y) e k>0 e un array di int a, da true se per ogni coppia di indici i e j (i<j), tali che a=a[j]=x, esistono almeno k indici m tali che a[m]=y

Quindi se per esempio avessi a=(2,4,3,4,5,2,6,2,5,2,3,5,6,2,4,2,1,2,3,4,2,5,4,2,7,2,6,3,8)
Con x=3, y=2, k=1 la funzione restituisce true (y ricorre almeno 1 volta in ogni intervallo creato tra coppie di x

Qualche idea sul come impostare il problema?
Grazie!

1 Risposte

  • Re: Funzione c++

    Trovare tutte le coppia significa passare ogni singolo elemento.
    per ogni elemento, se è diverso da x passi al successivo, altrimenti inizi a cercarne uno uguale da quello successivo. trovata una corrispondenza avrai un intervallo di valori racchiusi fra due indici, i e j. Parti a contare tutti gli elementi pari a y in quell'intervallo, e termini se il numero è inferiore a k. al passo successivo, dopo la conta, imposti i a j, e riprendi con lo stesso procedimento.

    x = 3, y = 2, k = 1
    a=(2,4,3,4,5,2,6,2,5,2,3,5,6,2,4,2,1,2,3,4,2,5,4,2,7,2,6,3,8)

    il primo a pari a x è 3, quindi i = 2, poi il primo elemento successivo a a pari x è a[j] con j uguale a 10 (l'undicesimo elemento). conti gli elementi il cui indice m è compreso nell'intervallo [i+1, j-1]. in questo caso i 2 sono 3. 3 è maggiore di k (1) e quindi riparti con lo stesso procedimento dall'elemento a[j] quindi i = j.
Devi accedere o registrarti per scrivere nel forum
1 risposte