شورای «کماک» $n$ عضو دارد که با اعداد $0$ تا $n - 1$ شمارهگذاری شدهاند. اعضای شورا برای برقراری ارتباط با یکدیگر از اینترنت استفاده میکنند. بین برخی از اعضا مسیر ارتباطی وجود دارد که هر کدام از آنها با کلمهی عبوری متفاوت از سایر مسیرها، محافظت میشود. توجه کنید که ممکن است بیش از یک مسیر ارتباطی بین دو عضو از شورا برقرار باشد. کلمهی عبور مربوط به هر مسیر ارتباطی در خطی جداگانه از فایل «معما» در سرور کماک ذخیره شدهاند.
رضا به تازگی راهی برای نفوذ به سرور کماک پیدا کرده است که با استفاده از آن میتواند فقط یک بازه از خطهای فایل معما را بخواند. همچنین، او میداند که بین کدام اعضا مسیر ارتباطی وجود دارد و هر کلمهی عبور مربوط به کدام مسیر ارتباطی است. به یک بازه از خطوط فایل معما، «کافی» میگوییم اگر با دانستن کلمهی عبور آن خطوط بتوان از طرف هر عضو شورا پیامی به عضو دیگر فرستاد. فرستادن پیام از عضوی به عضو دیگر در صورتی ممکن است که بتوان با طی کردن دنبالهای از مسیرهای ارتباطی که کلمهی عبور آنها در دسترس است از عضو اول به عضو دوم رسید.
رضا از شما خواسته است تا برنامهای بنویسید که مشخص کند چند بازهی کافی در معما وجود دارد.
در این سوال شما باید توابع زیر را پیادهسازی کنید.
long long countIntervals(int n, int m, int u[], int v[])
این تابع دقیقا یکبار فراخوانی میشود. آن را طوری پیادهسازی کنید که تعداد بازههای کافی را برگرداند.
ارزیاب نمونه ورودی را به صورت زیر میخواند: در خط اول دو عدد $n$ و $m$ آمده است. سپس $m$ خط آمده است که در خط $i + 1$ ام $u_i$ و $v_i$ آمدهاند.