Torneo 1V1 Competitive Programming

Torneo 1v1 Codeforces

Salve a tutti ragazzi sono lieto di annunciarvi la prima edizione del torneo 1v1 su codeforces.

In cosa consiste

È un torneo di competitive programming in cui i partecipanti si sfidano risolvendo problemi su codeforces. Il torneo è formato da una fase a gironi iniziale dove ogni membro del girone dovrà sfidare ogni altro membro dello stesso girone entro un determinato giorno.
Le sfide nella fase a gironi non hanno un giorno ed un orario preciso, i due sfidanti decidono insieme quando compiere la sfida. Riportata più avanti una data limite entro la quale devono essere completate tutte le sfide della fase a gironi.
Anche per le fasi successive (ad eliminazione diretta) sarà presente una scadenza, inoltre se possibile le semifinali e la finale verranno svolte in streaming.

Come funziona

Dopo la chiusura delle iscrizioni il torneo verrà simulato utilizzando challonge. Il numero di gironi, il numero di persone per girone ed il numero di persone che passa per ogni girone sarà stabilito alla fine delle iscrizioni. I partecipanti saranno divisi in fasce in base al rating su Codeforces ed i gironi saranno estratti casualmente evitando che partecipanti della stessa fascia finiscano nello stesso girone.

Le sfide tra due partecipanti verranno effettuate utilizzando Lockout bot.
Il bot permette di effettuare una sfida tra due partecipanti, in ogni sfida vengono proposti 5 problemi di difficoltà e valore crescente, la difficoltà degli esercizi e il tempo massimo per la sfida variano in base alla fase del torneo in cui ci si trova.
La sfida inizia con l’assegnazione di 5 problemi su Codeforces in ordine di difficoltà crescente. Il problemi valgono rispettivamente 100, 200, 300, 400 e 500 punti. Durante la sfida i partecipanti devono cercare di ottenere più punti possibili, tenendo in considerazione che ogni problema può essere risolto al più da uno dei 2 partecipanti, ossia il primo partecipante che risolve un problema ne ottiene il punteggio e impedisce all’avversario di poterlo risolvere.
La sfida finisce quando o finisce il tempo oppure uno dei 2 partecipanti supera il punteggio rimanente massimo che l’avversario può ottenere.
Una volta terminata ogni sfida entrambi i partecipanti dovranno comunicarmi su telegram (Fabio99) il risultato della sfida in modo che io possa aggiornare il torneo su challonge.
Il link al torneo su challonge sarà fornito al termine delle iscrizioni

Come mi iscrivo

Per iscriversi è necessario disporre di:

  • Disporre di un account codeforces.
  • Disporre di un account challonge.
  • Disporre di un account discord.
  • Disporre di un account telegram, tramite il quale avverranno le comunicazioni.

Per l’iscrizione è sufficiente inviare le proprie informazioni elencate precedentemente(link account Codeforces, username Discord, mail challonge) al seguente contatto Telegram: zJack1342.

Regole

Come detto in precedenza, per ogni fase ci sono delle date di scadenza entro la quale completare le sfide. Il numero di problemi in tutte le fasi e 5, la difficoltà ed la durata del tempo variano da fase a fase e vi viene comunicata da noi. La difficoltà dei problemi di codeforces è rappresentata da un numero nel range [800, 3500].
Il modo migliore e più semplice per effettuare una sfida è usare il contatto telegram del proprio avversario per trovare un accordo sul quando svolgere la sfida.

Una volta chiuse le registrazioni verrete invitati in un canale discord e verranno spiegati meglio i comandi per effettuare ogni sfida. Quando accetterete l’invito al canale provvederemo a collegare il vostro account discord al vostro profilo codeforces in modo che sia possibile effettuare le sfide.

Il girone verrà aggiornato dagli admin, la classifica del girone è ordinata in base al numero di vittorie, ed a parità di vittorie il numero di punti totali. In una sfida che termina con lo stesso punteggio il vincitore è colui che ha risolto il problema più difficile.

Comandi bot Discord

I comandi necessari per collegare il vostro username discord al profilo codeforces verranno eseguiti direttamente dagli admin.

Il canale avrà diverse chat, almeno una per ogni girone, in tutte le chat sarà attivo il bot, ognuno dovrà scrivere nella chat del proprio girone.
I comandi principali sono:

  • .help:si ottengono informazioni sul bot.
  • .help x: si ottengono informazioni sul comando x.
  • .match challenge_custom username_discord_avversario durata_in_minuti a b c d e : si sfida l’utente indicato in una sfida del tempo indicato. Dove a, b, c, d, e sono rispettivamente le difficoltà del primo, secondo, terzo, quarto e quinto problema (a, b, c, d, e vi saranno comunicate dagli admin in base alla fase del girone).
  • .match accept: permette di accettare l’ultima sfida che ti è stata proposta.
  • .match problems: mostra i problemi ancora disponibili nella sfida(non risolti da nessuno dei 2 partecipanti).
  • .match update: aggiorna lo stato della partita (lo stato viene aggiornato automaticamente ogni 30s).

Nel caso in cui nessuno dei 2 partecipanti abbia mai usato il bot è sensato svolgere una gara di prova tra i due (anche con durata breve e problemi facili). Per fare ciò è consigliato il comando .match challenge username_discord_avversario 30 800 che propone una sfida di 30 minuti con problemi di difficoltà da 800 a 1200.

Possono essere svolte più gare di prova l’importante è che alla fine di ogni gara ufficiale entrambi i partecipanti comunichino il risultato (punteggi e problemi risolti) su telegram (Fabio99).

Schedule

  • La fase di iscrizione è aperta da giovedì 16/07/2020 alle 00:00 fino a sabato 18/07/2020 alle 23:59.
  • La fase dei gironi va invece da lunedì 20/07/2020 a venerdì 31/07/2020 alle 23:59.
  • Le fasi successive e le scadenze verranno comunicate a gironi terminati.

Altre informazioni

Ai partecipanti sarà fornito un file in cui sono presente le informazioni di ogni partecipante, che può tornare utile per accordarsi sul quando svolgere la sfida.

Il torneo è aperto a tutti anche si richiede di non iscriversi se si è sicuri o quasi che non si riesca a partecipare.

Se non si hai mai utilizzato la piattaforma codeforces è vivamente consigliato provarla, magari iniziando a risolvere i problemi più semplici.

Per chiarimenti contattare zJack1342 oppure Fabio99.

10 Mi Piace

Le iscrizioni sono terminate, abbiamo raggiunto 20 partecipanti ed abbiamo formato i gironi. Per una questione di organizzazione del tabellone sono stati composti 4 gironi da 5 persone. Procederanno alla fase ad eliminazione diretta i primi 2 classificati di ogni girone. Ricordo che in ogni girone dovrà avvenire una sfida per ogni coppia di partecipanti (la sfida avviene per iniziativa autonoma dei due partecipanti entro la scadenza prestabilita) ed il risultato dovrà essere inoltrato su telegram (Fabio99).

Qui potete trovare i gironi ed i relativi risultati.

La classifica di ogni girone è ordinata in base a:

  • Numero di vittorie.
  • A parità di vittorie, si considerano i punti di ogni partecipante.

Ricordo che se si ottiene lo stesso punteggio vince colui che ha risolto il problema con il valore maggiore, ciò significa che si può pareggiare solo 0 a 0.

Nella fase a gironi le sfide dovranno durare 45 minuti e le difficoltà dei problemi dovranno corrispondere a 1000, 1200, 1400, 1600, 1800, ossia serve il comando di sfida: .match challenge_custom username_discord_avversario 45 1000 1200 1400 1600 1800 .

Ricordo che la fase dei gironi va da lunedì 20/07/2020 a venerdì 31/07/2020 alle 23:59.

Buona fortuna a tutti i partecipanti, in casi ci fossero dubbi non esitate a chiedere.

4 Mi Piace

Buongiorno a tutti!
Si è ufficialmente conclusa la fase a gironi del torneo qui potete trovare le classifiche dei 4 gironi.
Complimenti agli 8 partecipanti che hanno superato la fase a girone:

  • Fabio Marchesi
  • Mauro Losurdo
  • Alberto Vendramini
  • Fabrizio Brioni
  • Armando Pellegrini
  • Tommaso Dossi
  • Taulant Arapi
  • Davide Bartoli

Questo è il tabellone della fase finale del torneo. Per le prossime sfide (essendo relativamente poche) non esiste una data di scadenza, bensì si passerà al turno successivo quando tutte le partite del turno attuale saranno state svolte.

È possibile da questo momento effettuare le sfide dei quarti di finale che dureranno 69 minuti e le difficoltà dei problemi saranno 1300, 1500, 1700, 1900, 2100. Il comando per la sfida sarà quindi .match challenge_custom username_discord_avversario 69 1300 1500 1700 1900 2100 . Per effettuare le sfide è stato creato il relativo canale testuale “quarti” all’interno del server discord del torneo.

Per chi non fosse ancora presente ed intendesse seguire le sfide questo è link di invito al server discord, ricordo che è in programma effettuare streaming per le sfide delle semifinali e della finale del torneo.

6 Mi Piace

Anche se con un po’ di ritardo siamo tornati!!

Per un motivo o per l’altro il torneo era andato in stallo, ma abbiamo deciso di terminarlo!!
Durante le due scorse settimane si sono svolti i quarti di finali, i vincitori nonché prossimi semifinalisti saranno:

  • Alberto Vendramini
  • Fabrizio Brioni
  • Tommaso Dossi
  • Davide Bartoli

Le semifinali saranno:

  • Fabrizio Brioni vs Davide Bartoli
  • Tommaso Dossi vs Alberto Vendramini

Mancano quindi poche sfide, fateci sapere chi secondo voi sarà il vincitore: :blush:

Vincitore torneo
  • Alberto Vendramini
  • Davide Bartoli
  • Tommaso Dossi
  • Fabrizio Brioni

0 votanti

6 Mi Piace

Anche le semifinali sono state completate!!
Alberto Vendramini si è ritirato dal torneo quindi la sua semifinale non è stata svolta e Tommaso Dossi si qualifica automaticamente per la finale.
Nell’altra semifinale Fabrizio Brioni ha sconfitto Davide Bartoli in una sfida combattuta sino all’ultimo secondo, la sfida è finita 500 a 500 ma Brioni risulta vincitore in quanto ha risolto l’esercizio da 400 pt.

Non sarà svolta quindi nemmeno la finale per il terzo/quarto posto e Davide Bartoli si aggiudica il gradino più basso del podio :3rd_place_medal:

Per la finale potrebbe volerci un po’ di tempo perché verrà organizzata una live su YouTube (il cui link sarà fornito successivamente) nella quale sarà possibile vedere lo schermo dei 2 finalisti. I problemi proposti non saranno scelti random dal bot ma verranno scelti dallo staff, e verranno poi discussi durante la live stessa.

La maggioranza dei vostri pronostici riguardo il vincitori sono risultati sbagliati, ma vi diamo un’altra opportunità: chi secondo voi vincerà la finale:

Vincitore torneo :1st_place_medal:
  • Fabrizio Brioni
  • Tommaso Dossi

0 votanti

4 Mi Piace