Sistema per il controllo degli accessi ad un impianto sciistico


Ogni sciatore ha una tessera caratterizzata da un identificatore (numero su 6 cifre decimali). Ogni skilift ha un lettore di tessera e un identificatore di skilift (2 cifre decimali). Il sistema riceve una lettura da uno skilift (parametri della lettura: id skilift, id tessera) e rilascia o meno l'autorizzazione al passaggio. L'obbiettivo e' evitare che persone diverse usino la stessa tessera. Quindi l'autorizzazione viene data solo se la tessera non e' gia' passata per lo skilift X negli ultimi Delta(X) secondi. Notare che Delta dipende dallo skilift.

I ritardi Delta degli skilift vengono letti da un file passato come primo parametro sulla linea di comando. Il file e' formattato come segue:

id_skilift,ritardo_delta

Il sistema, una volta inizializzato, deve fornire una funzione di autorizzazione del tipo

boolean auth(long cardId, int skiliftId) throws BadSkiliftIdException

Vincoli:

Funzioni relative al tempo:


import java.util.Date;

Date currentDate = new Date();
long currentTime = currentTime.getTime();
/* currentTime contiene il tempo attuale, in secondi, a partire dal 1.1.1970 */