Esistono molti tipi diversi di set di treni, che vanno dai binari in legno come Brio, al controllo completamente digitale, perfette repliche metalliche minuscole di treni reali, ma richiedono tutti un binario da progettare, utilizzando idealmente il maggior numero possibile di pezzi.
Quindi, il tuo compito è determinare se, dato l'ingresso dei pezzi disponibili, è possibile costruire un circuito chiuso completo usando tutti gli elementi e, in caso contrario, quanti pezzi rimarranno dal circuito massimo possibile.
Poiché si tratta di un set di treni semplificato, ci sono solo 3 elementi: curva grande, curva piccola e diritto. Questi sono tutti basati su una griglia quadrata:
- "Big Curve" è un angolo di 90 gradi, che copre 2 unità in ogni dimensione
- "Little Curve" è un angolo di 90 gradi, che copre un'unità in ogni direzione
- "Straight" è un elemento dritto, lungo 1 unità
Ciò significa che il circuito minimo possibile è formato da 4 piccole curve - è un cerchio, di raggio 1 unità. Questo può essere esteso aggiungendo coppie di elementi diritti per formare vari ovali. Ci sono altri circuiti possibili aggiungendo più curve o mescolando i tipi di curva.
Questo set di treni non include alcun incrocio o metodo per l'attraversamento dei binari, quindi non è valido per due elementi collegarsi alla stessa estremità di un altro elemento (nessuna formazione Y) o incrociarsi l'uno con l'altro (nessuna formazione X) . Inoltre, è un insieme di treni, quindi qualsiasi formazione che non consente il passaggio di un treno non è valida: gli esempi includono rettilinei che si incontrano ad angoli di 90 gradi (deve esserci sempre una curva tra rettilinei perpendicolari) e curve che si incontrano ad angoli di 90 gradi (le curve devono fluire).
Vuoi anche usare il maggior numero possibile di pezzi, ignorando il loro tipo, quindi sceglierai sempre un circuito con più bit. Infine, hai solo un treno, quindi qualsiasi soluzione che si traduce in più circuiti è inaccettabile .
Ingresso
Un array di tre numeri interi, tutti maggiori o uguali a 0, corrispondenti al numero di curve grandi, curve piccole e rettilinei disponibili o parametri passati al programma, nello stesso ordine.
Produzione
Un numero corrispondente al numero di pezzi rimasti quando viene costruito il circuito massimo possibile per gli elementi forniti.
Dati di test
Minimal circuit using big curves
Input: [4,0,0]
Output: 0
Slightly more complicated circuit
Input: [3,1,2]
Output: 0
Incomplete circuit - can't join
Input: [3,0,0]
Output: 3
Incomplete circuit - can't join
Input: [3,1,1]
Output: 5
Circuit where big curves share a centre
Input: [2,2,0]
Output: 0
Bigger circuit
Input: [2,6,4]
Output: 0
Circuit where both concave and convex curves required
Input: [8,0,0] or [0,8,0]
Output: 0
Circuit with left over bit
Input: [5,0,0] or [0,5,0]
Output: 1
Gli appunti
- 2 rettilinei e una piccola curva equivalgono a una grande curva, ma usano più pezzi, quindi sono preferiti - non dovrebbe mai essere una situazione in cui questa combinazione viene lasciata, se ci sono grandi curve nel circuito
- Di solito 4 piccole curve possono essere scambiate con 4 rettilinei, ma non se ciò causasse l'intersezione del circuito
- Anche il set di treni è idealizzato: gli elementi del binario occupano le larghezze mostrate, quindi è valido per le curve passare attraverso un singolo quadrato della griglia senza intersecarsi, in alcuni casi. La griglia definisce solo le dimensioni dell'elemento. In particolare, è possibile posizionare due grandi curve in modo che il quadrato della griglia in alto a sinistra del diagramma di esempio sia anche il quadrato in basso a destra di un'altra grande curva che corre da sinistra verso l'alto (con il diagramma che mostra uno che corre da destra a fondo)
- Una piccola curva può adattarsi allo spazio vuoto sotto una grande curva (griglia in basso a destra sopra). Una seconda grande curva potrebbe anche usare quello spazio, spostato di uno e uno in basso rispetto al primo
- Una piccola curva non può adattarsi allo stesso spazio della griglia all'esterno di una grande curva, principalmente perché non c'è modo di connettersi ad essa che non si intersecano illegalmente


[5,0,0]o[0,5,0]sarebbe1. È corretto? Potresti aggiungere un simile test?