QOJ.ac

QOJ

حد الوقت: 2 s حد الذاكرة: 512 MB مجموع النقاط: 100 قابلة للهجوم ✓

#23634. ספירת קטעים משולשיים

الإحصائيات

נתון מערך $A=[a_1,a_2,\dots,a_n]$ באורך $n$.

עבור קטע $[x,y]$ ($1\le x\le y\le n$), אם ניתן לבחור מתוך האינדקסים $x,x+1,\dots,y$ שלושה אינדקסים שונים זה מזה $i,j,k\ (x\leq i\lt j\lt k\leq y)$ כך שהערכים המתאימים لهم יכולים להוות אורכי שלוש צלעות של משולש, כלומר $a_i+a_j\gt a_k, a_i+a_k\gt a_j, a_j+a_k\gt a_i$, אז $[x,y]$ נקרא קטע משולשי. בפרט, קטע שאורכו קטן מ-$3$ לעולם אינו קטע משולשי.

כעת יש לתמוך ב-$q$ פעולות, כאשר כל פעולה היא אחת משני הסוגים הבאים:

  • פעולה מסוג ראשון: $1\ p\ v\ (1\leq p\leq n, 1\leq v\leq 10^{18})$, משנה את $a_p$ ל-$v$.
  • פעולה מסוג שני: $2\ l\ r\ (1\leq l\leq r\leq n)$, שואלת כמה מבין כל הקטעים $[x,y]$ המקיימים $l\le x\le y\le r$ הם קטעים משולשיים.

אנא הדפס עבור כל פעולה מסוג שני את תוצאת הספירה המתאימה.

קלט

כל בדיקה מכילה מספר מקרי בדיקה. השורה הראשונה מכילה את מספר מקרי הבדיקה $T$ ($1\le T\le 10^4$).

עבור כל מקרה בדיקה:

  • השורה הראשונה מכילה שני מספרים שלמים $n$, $q$ ($1\leq n\leq 10^6,~1\leq q\leq 2\times 10^4$), המייצגים את אורך הסדרה $A$ ואת מספר השאילתות.
  • השורה השנייה מכילה $n$ מספרים שלמים $a_1,a_2,\ldots,a_n$ ($1\le a_i\le 10^{18}$), המייצגים את איברי הסדרה הנתונה $A$.
  • ב-$q$ השורות הבאות, כל שורה מכילה $3$ מספרים שלמים המייצגים פעולה אחת; פורמט הקלט של שני סוגי הפעולות מתואר בתיאור הבעיה.

מובטח כי סכום ה-$n$ על פני כל מקרי הבדיקה אינו עולה על $10^6$, סכום ה-$q$ על פני כל מקרי הבדיקה אינו עולה על $2\times 10^4$, ומובטח שבכל מקרה בדיקה יש לפחות פעולה אחת מסוג שני.

פלט

עבור כל פעולה מסוג שני, הדפס את מספר הקטעים המשולשיים בתוך $[l,r]$.

Examples

Input 1

2
6 5
3 4 5 1 1 100
2 1 3
2 4 6
1 6 1
2 4 6
2 1 6
3 1
1 1 1
2 1 3

Output 1

1
0
1
7
1

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.