Attenzione: Questo task ha un tempo limite di 10 minuti per l'invio della soluzione. Una volta richiesto un input, il timer partirà in automatico, e dopo la scadenza non sarà più possibile inviare una soluzione per quell'input. È sempre possibile richiedere un nuovo input, per cui non preoccuparti se il timer scade: dovrai semplicemente richiedere e scaricare un nuovo input.
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.
- Scarica la traccia in C: quadrante.c
- Scarica la traccia in C++: quadrante.cpp
- Scarica la traccia in Python: quadrante.py
- Scarica la traccia in Java: quadrante.java
- Scarica la traccia in C#: quadrante.cs
- Scarica la traccia in JavaScript: quadrante.html
- Scarica la traccia in Rust: quadrante.rs
Davide sta organizzando un viaggio su una griglia infinita, muovendosi solo verso l'alto e verso destra.
Davide parte dal punto e vorrebbe visitare città , numerate da a nell'ordine di quanto Davide le trova interessanti, che si trovano rispettivamente nei punti , cioè sulla -esima colonna e sulla -esima riga. Rendendosi presto conto che potrebbe non essere in grado di visitarle tutte (muovendosi solo in alto o a destra), Davide decide di considerare anche degli itinerari ridotti. Un prefisso delle città è, fissato un intero , l'insieme delle città con indice minore o uguale a : in altre parole, le città più interessanti per Davide. Aiuta Davide a capire quanti prefissi sono completamente visitabili!
Un prefisso è completamente visitabile se, partendo da e muovendosi solo verso l'alto e verso destra, Davide riesce a visitare tutte le città in esso, in un qualsiasi ordine.
Come primo esempio, consideriamo che le uniche due città interessanti per Davide siano (in ordine) nelle posizioni e . In questo caso la risposta è 1, infatti:
Come secondo esempio, consideriamo che le 4 città interessanti per Davide siano (in ordine) nelle posizioni , , e . In questo caso la risposta è 3, infatti:
Nei primi casi di test vale . Nei primi casi di test vale .
La prima riga del file di input contiene un intero , il numero di casi di test. Seguono casi di test, numerati da a . Ogni caso di test è preceduto da una riga vuota.
Ogni caso di test è composto come segue:
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: p
dove t
è il numero del caso di test (a partire da ) e il valore p
è il numero di prefissi completamente visitabili.
Gli esempi descritti sopra si rappresentano nel formato di input/output nel seguente modo.
Input:
2
2
1 2
2 1
4
3 4
1 3
2 3
2 1
Output:
Case #1: 1
Case #2: 3