Persian party mehmooni


#1

Nel testo come spesso succede si trova scritto:

Among the attachments of this task you may find a template file mehmooni.* with a sample
incomplete implementation
Nel template scaricato in fondo si trova, per quanto concerne la stampa del risultato,:

printf("%d\n", 42); // change 42 with actual answer
return 0;

Se uno segue le istruzioni e va a scrivere al posto di 42 la variabile risultato, cioè qualcosa come:

printf("%d\n", strette_di_mano); // change 42 with actual answer
return 0;

il programma sbaglierà due test case

La dicitura “// change 42 with actual answer” è una svista o lo fate per vedere quanto il solutore ci mette a capire che il solo cambiare il 42 con il vero risultato non è sufficiente?


#2

Ringraziamo per la segnalazione. Naturalmente si tratta di una svista: ora abbiamo aggiornato il template online. Se avessimo ricevuto una domanda in merito durante la gara, ce ne saremmo accorti e avremmo sistemato. Purtroppo non possiamo arrivare ovunque.

Ci sembra abbastanza evidente che non abbiamo alcuna intenzione di agire con crudeltà nei confronti degli studenti: sarebbe puro sadismo e non proviamo certamente piacere generando frustrazione.

A parziale discolpa do un’idea del lavoro che facciamo: solo per questa edizione delle OIS prepariamo 8*5=40 (quaranta!) problemi. Significano quaranta idee, quaranta testi, quaranta generatori di testcase, quaranta template in C e pascal, quaranta soluzioni ufficiali e più di centocinquanta soluzioni alternative e parziali.
Di tutto questo facciamo peer-review, scovando ed eliminando preventivamente diversi errori: siamo consapevoli del fatto che ogni imprecisione che lasciamo si riflette in fastidio e frustrazione in centinaia di studenti in tutta Italia.

Tutto questo naturalmente non ci legittima nel lasciare errori come quello segnalato: l’ho scritto solo per dare idea a tutti di cosa avviene “dietro le quinte”.

Siete sempre i benvenuti e, anzi, vi incoraggiamo a trovare e segnalarci tutte le incongruenze per rendere sempre migliori i problemi della piattaforma :wink: .


#3

<opinione-personale>
C’è da dire però che forse scrivere “%lld” al posto di “%d” sarebbe già un indizio che forse non vogliamo dare. Credo che sia giusto aspettarsi che i contestant modifichino adeguatamente i template in modo da supportare “l’ultimo subtask”, che solitamente è più difficile degli altri. Ricordo che in passato avevamo fornito un template che leggeva dei dati in un array, mentre per l’ultimo subtask era necessario rimuovere completamente l’array (altrimenti si andava fuori dal limite di memoria).
</opinione-personale>


Comunque, per quel che vale, la dicitura “you may find a template file” fu fortemente voluta da me, a dispetto di un più rassicurante “you will find”, proprio perché non vogliamo assolutamente garantire nulla su quei template.

Usiamo una politica che in gergo si chiama “best-effort”, facciamo del nostro meglio per fornire i template ma (a differenza dei testi, dove ad esempio garantiamo assunzioni e non-ambiguità della consegna) non garantiamo nulla. Nemmeno che vengano forniti :joy:


#4

Posso essere d’accordo a riguardo, in tal caso però, e forse a causa di una mia deformazione professionale, suggerirei al posto dello standard

printf("%d\n", 42); // change 42 with actual answer

un più generico “// stampa del risultato” o qualcosa del genere che non da indizi che si ritiene di non dover dare e che non contiene parti non corrette (%d).
Comunque ho moltissima stima del vostro lavoro.
Saluti