La mostra di Mojito

Per aiutarti con questo task, abbiamo preparato delle tracce di soluzione, che includono solo le parti di lettura dell'input e scrittura dell'output (da tastiera e su schermo). Puoi decidere se leggere/scrivere su file decommentando le opportune righe di codice.


Descrizione del problema

Mojito, il cagnolino di Monica, terrà finalmente una mostra dei fantastici reperti che negli anni ha ritrovato nel suo giardino! Data l'importanza dell'evento, si sono create due lunghe file. Nella prima si sono assiepati NN turisti, ciascuno con un grado di preparazione V[i]V[i]. Nella seconda si sono accalcati MM volontari della scuola d'arte, che si offrono di guidare i turisti attraverso i reperti, ciascuno con un grado di preparazione G[i]G[i].

Per l'accesso alla mostra dei turisti sono disponibili due tipi di biglietti: il biglietto senza guida al costo di 1 euro, e il biglietto con guida al costo di 2 euro. I volontari invece non pagano mai, che gli venga assegnato un turista oppure no. La grande calca impedisce di riordinare le persone in fila, ma è comunque possibile decidere il modo con cui far entrare le persone: individualmente da una delle due file, oppure abbinati dalle due file. È sempre possibile far entrare le persone individualmente, ma per mantenere alta la reputazione della mostra, è possibile abbinare un turista di preparazione V[i]V[i] con una guida di preparazione G[j]G[j] solo se la guida è più preparata del turista, ovvero se G[j]>V[i]G[j] > V[i]. In caso contrario, il turista si troverebbe a spiegare i dettagli dell'arte di Mojito alla guida, uno smacco troppo grande per il museo!

Per ottenere il massimo profitto possibile, è importante abbinare bene le guide ai turisti, decidendo quali guide e turisti far entrare individualmente, e quali invece abbinare tra loro. Quanto può guadagnare al massimo la mostra dai biglietti, decidendo con cura l'assegnamento di guide ai turisti?

Dati di input

La prima riga del file di input contiene un intero TT, il numero di casi di test. Seguono TT casi di test, numerati da 11 a TT. Ogni caso di test è preceduto da una riga vuota.

Ciascun caso di test è composto da 33 righe: la prima contiene i due numeri interi NN ed MM, rispettivamente il numero di turisti e il numero di volontari. La riga successiva contiene gli NN interi V[i]V[i], i gradi di preparazione dei turisti. La terza riga contiene gli MM interi G[i]G[i], i gradi di preparazione dei volontari.

Dati di output

Il file di output deve contenere la risposta ai casi di test che sei riuscito a risolvere. Per ogni caso di test che hai risolto, il file di output deve contenere una riga con la dicitura

Case #t: s

dove t è il numero del caso di test (a partire da 11) e il valore s è il massimo guadagno che è possibile ottenere in questo caso di test.

Assunzioni

  • T=21T=21, nei file di input che scaricherai saranno presenti esattamente 2121 casi di test.
  • 1≤N,M≤10001 \le N,M \le 1000.
  • 0≤V[i],G[i]≤1060 \le V[i],G[i] \le 10^6.

Esempi di input/output


Input:

4

2 5
2 2
1 1 7 2 9

5 3
1 2 3 4 5
3 3 3

3 1
8 6 7
20

2 2
5 1
2 6

Output:

Case #1: 4
Case #2: 7
Case #3: 4
Case #4: 3

Spiegazione

Nel primo caso d'esempio sono presenti 2 visitatori e 5 guide. Una soluzione ottima è la seguente:

  • Il primo visitatore entra con la terza guida, per un guadagno di 2;
  • Il secondo visitatore entra con l'ultima guida, per un guadagno di 2;
  • Il ricavo totale è 2+2=42+2=4.

Notiamo che non è possibile assegnare la prima, la seconda e la quarta guida a nessun turista, perchè nessuna di queste è abbastanza preparata. L'immagine seguente rappresenta la soluzione ottima:

Primo caso d'esempio


Nel secondo caso d'esempio possiamo comportarci nel seguente modo:

  • Facciamo entrare il primo visitatore con la prima guida, guadagnando 2;
  • Facciamo entrare il secondo visitatore con la seconda guida, guadagnando di nuovo 2;
  • Facciamo entrare da soli i rimanenti tre visitatori, perchè l'unica guida rimasta non è abbastanza preparata.

In questo modo guadagniamo 2+2+1+1+1=72+2+1+1+1=7 euro, che è il massimo possibile.

Secondo caso d'esempio


Nel terzo caso d'esempio l'unica guida disponibile è così preparata da poter accompagnare qualsiasi turista. Possiamo, ad esempio, far entrare insieme la guida e il primo turista, ottenendo 2+1+1=42+1+1=4 euro.

Terzo caso d'esempio


Nel quarto caso d'esempio la soluzione ottima è 3, ed è ottenibile in tre modi:

  • Possiamo far entrare il primo turista con la seconda guida e il secondo turista da solo, oppure
  • Possiamo far entrare il primo turista da solo e il secondo con la prima guida, oppure
  • Possiamo far entrare il primo turista da solo e il secondo con la seconda guida.

Nota che non è possibile cambiare l'ordine delle persone, e in particolare non possiamo far entrare la prima guida col secondo turista e il primo turista con la seconda guida, che farebbe guadagnare 4 euro.

Di seguito una delle soluzioni ottime:

Quarto caso d'esempio

Invia soluzione

Accedi per inviare soluzioni
Accedi