QOJ.ac

QOJ

時間限制: 2.0 s 記憶體限制: 512 MB 總分: 100

#17742. Castors et Revaebs

统计

Dans les concours de programmation, les castors résolvent les problèmes dans l'ordre, du premier au dernier. Les revaebs, en revanche, sont un type spécial de rongeur qui résout les problèmes dans l'ordre inverse, du dernier au premier.

$N$ castors et $N$ revaebs vont s'affronter lors du prochain concours de programmation ! Le concours se compose de $N$ problèmes, le $k^{\text{ième}}$ problème ayant une valeur en points entière $p_k$ comprise entre $l_k$ et $r_k$ inclus. Le score d'un participant est la somme des valeurs en points des problèmes qu'il a résolus.

Le jour du concours, on sait que le $i^{\text{ième}}$ castor a résolu les $i$ premiers problèmes, et que le $j^{\text{ième}}$ revaeb a résolu les $j$ derniers problèmes. De plus, la seule paire de participants ayant le même score est celle des deux participants ayant résolu tous les problèmes, c'est-à-dire le $N^{\text{ième}}$ castor et le $N^{\text{ième}}$ revaeb. Étant donné ces informations, comptez le nombre d'assignations possibles de valeurs en points aux problèmes du concours. Comme ce nombre peut être grand, donnez son reste modulo $10^9 + 7$.

Entrée

La première ligne contient $N$ ($1 \leq N \leq 50$), le nombre de problèmes du concours.

$N$ lignes suivent. La $k^{\text{ième}}$ de ces lignes contient deux entiers séparés par un espace, $l_k$ et $r_k$ ($1 \le l_k \le r_k \le 2000$).

Sortie

Affichez une ligne contenant la réponse : le nombre de séquences de valeurs en points modulo $10^9+7$.

Barème

  • ($10$ points) $N \leq 8$ et $r_k \leq 8$ pour tout $k$.
  • ($30$ points) $l_k = 1$ pour tout $k$ et il existe un $R$ fixe tel que $r_k = R$ pour tout $k$.
  • ($30$ points) $r_k \leq 100$ pour tout $k$.
  • ($30$ points) Aucune contrainte supplémentaire.

Exemples

Entrée 1

4
1 1
2 2
3 3
10 10

Sortie 1

1

Entrée 2

1
1 2000

Sortie 2

2000

Entrée 3

4
1 2
1 2
1 2
1 2

Sortie 3

2

Entrée 4

5
1 3
2 4
1 4
1 2
3 3

Sortie 4

18

Entrée 5

6
1 5
1 5
1 5
1 5
1 5
1 5

Sortie 5

5120

Remarque

Explication de l'exemple 1

Les valeurs en points des problèmes ne peuvent être que $1, 2, 3, 10$. En utilisant ces valeurs, les scores des castors sont respectivement $1, 3, 6, 16$ et les scores des revaebs sont respectivement $10, 13, 15, 16$. Tous ces scores sont différents, à l'exception du score de $16$ obtenu par le $4^{\text{ième}}$ castor et le $4^{\text{ième}}$ revaeb, donc cette séquence est valide, ce qui donne $1$ comme réponse.

Explication de l'exemple 2

Cet exemple satisfait les contraintes de la deuxième sous-tâche.

Explication de l'exemple 3

Cet exemple satisfait les contraintes de la deuxième sous-tâche.

Les seules séquences valides de valeurs en points sont $1, 2, 2, 2$ et $2, 2, 2, 1$, ce qui donne $2$ comme réponse.

Explication de l'exemple 5

Cet exemple satisfait les contraintes de la deuxième sous-tâche.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.