Sto provando a fare array partition (in gara ho fatto 90), intuendo che non è sicuramente la soluzione migliore(infatti da 90) fare i due for con complessità (n^2), allora ho pensato di farlo in questo modo:
http://pastebin.com/w9r6s252
io di fatto per i valori prima dalla prima meta calcolo quanti ce ne sono piu grandi prima di lui con un for, per calcore quanti ce ne sono piu piccoli dopo di lui invece di fare un for calcolo la differenza fra i valori che ho analizzato con il primo for e quanti ne ho contati con il cont(quindi i piu grandi di lui) cosi io di fatto trovo quanti ce ne erano piu piccoli prima, per trovare quanti ce ne sono piu piccoli dopo mi basta fare quanti ce ne sono piu piccoli in totale(quindi il numero che sto anallizando meno 1) meno quanti piu piccoli ne ho prima. cosi di fatto il secondo for non lo faccio da 0 a n ma da 0 a i
per esempio se ho un array di 100 000 elementi e devo calcolare gli elementi sbagliati per l elemento in posizione 1 mi basta scorrere solo la prima casella.
a quanto pare però non è la soluzione ottimale(fallisce 2 casi), come posso fare?