اخیرا باستانشناسان موفق به کشف یک گنجینه از نامههای بسیار قدیمی شدهاند که به شیوهی پیچیدهای رمزگذاری شدهاند. در انتهای هر نامه یک گراف رسم شده است و کلید رمزگشایی نامه برابر با تعداد تطابقهای کامل این گراف است. پس از بررسی گرافها مشخص شد که در هر گراف تعدادی از رئوس قرمز و سایر رئوس آبی هستند و رنگ دو سر هر یال متفاوت است. همچنین تعداد رئوس قرمز و آبی برابر است.
با تلاش شبانهروزی دانشمندان، الگوریتم متفاوتی برای رمزگشایی نامهها به دست آمد که برای رمزگشایی نامه تنها به باقیماندهی کلید نامه بر 4 نیاز دارد. شما باید به باستانشناسان کمک کنید که باقیماندهی کلید نامه بر 4 را محاسبه کنند.
در این سوال شما باید تابع زیر را پیادهسازی کنید.
int findKey(int n, int m, int *u, int *v)
این تابع t بار فراخوانی میشود. تابع را طوری پیادهسازی کنید که با ورودی گرفتن گراف انتهای یک نامه، باقیماندهی کلید آن نامه بر 4 را مشخص کند.
ارزیاب نمونه ورودی را به صورت زیر میخواند: در خط اول عدد t، تعداد موارد آزمون آمده است. سپس به ازای هر مورد آزمون، در یک خط دو عدد n و m آمده است. در هر یک از m خط بعد، دو عدد آمده است که عدد خط i ام ui−1 و vi−1 است.