Universal Cup Judging System

Universal Cup

Time Limit: 2 s Memory Limit: 1024 MB
Statistics

يعطيك VegiCat عددين صحيحين $n$ و$m$. لنتأمل المصفوفات الصحيحة $a_1, a_2, \ldots, a_n$ التي تحقق

$$ a_1 = 0, \qquad 0 \le a_{i+1} - a_i \le 1 \quad (1 \le i < n). $$

ليكن $s_i = a_1 + a_2 + \ldots + a_i$ هو المجموع البادئ للمصفوفة $a$. يخبرك VegiCat أيضًا بالمجاميع البادئة عند $m$ مواضع؛ أي تُعطى لك $m$ قيود على الصورة $s_{p_j} = v_j$ ($1 \le j \le m$).

problem_23594_7f47c20ec05f2c7c4e4e59a950db89af.png

احسب عدد المصفوفات التي تحقق جميع القيود، بباقي القسمة على $998\,244\,353$. إذا لم تحقق أي مصفوفة جميع القيود، فإن الإجابة هي $0$.

الإدخال

يحتوي السطر الأول على عدد صحيح $T$ ($1 \le T \le 10^4$)، وهو عدد حالات الاختبار. يلي ذلك وصف حالات الاختبار.

تُعطى كل حالة اختبار كما يلي:

يحتوي السطر الأول على عددين صحيحين $n$ و$m$ ($1 \le n \le 100$، $0 \le m \le n$)، يمثلان طول المصفوفة وعدد قيود المجموع البادئ على الترتيب.

يحتوي السطر الـ $j$ من الأسطر الـ $m$ التالية على عددين صحيحين $p_j$ و$v_j$ ($1 \le p_j \le n$، $0 \le v_j \le 10^9$). يصف هذا قيدًا: يجب أن يساوي مجموع أول $p_j$ عناصر من المصفوفة القيمة $v_j$.

تُعطى المواضع $p_j$ بترتيب متزايد قطعيًا.

الإخراج

لكل حالة اختبار، اطبع عددًا صحيحًا — عدد المصفوفات الصالحة بباقي القسمة على $998\,244\,353$.

أمثلة

الإدخال 1

6
1 0
3 1
3 1
3 1
2 0
4 1
4 3
5 2
1 0
5 4
5 2
2 0
5 10

الإخراج 1

1
1
2
2
2
0

ملاحظة

بدون أي قيود على المجاميع البادئة، يوجد بالضبط $2^{n-1}$ من هذه المصفوفات، لأن كل فرق من الفروق المتجاورة البالغ عددها $n - 1$ يمكن أن يكون بشكل مستقل $0$ أو $1$.

في حالة الاختبار الثانية، المصفوفة الوحيدة التي تحقق $s_3 = 1$ هي $(0, 0, 1)$.

في حالة الاختبار الثالثة، يفرض الشرط $s_2 = 0$ أن يكون $a_2 = 0$، وبعد ذلك يمكن أن يكون $a_3$ مساويًا لـ $0$ أو $1$.

في حالة الاختبار الرابعة، المصفوفتان هما $(0, 1, 1, 1)$ و$(0, 0, 1, 2)$.

في حالة الاختبار الخامسة، المصفوفتان اللتان تحققان $s_5 = 4$ هما $(0, 0, 1, 1, 2)$ و$(0, 1, 1, 1, 1)$.

في حالة الاختبار السادسة، يفرض الشرط $s_2 = 0$ أن يكون $a_1 = a_2 = 0$، وبالتالي فإن $s_5 \le 6$. القيد $s_5 = 10$ مستحيل.

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.