Games R Us
GamesAreUs.com щойно завершила зовнішній аудит за цей рік. Одним з виявлених пунктів була відсутність будь-яких бізнес-правил для призначення дозволів на файли на спільному файловому сервері компанії. Аналітики працюють над створенням деяких ролей для всіх співробітників і визначенням, які дозволи слід надати кожній ролі. Ваша команда повинна ознайомитися з існуючою ситуацією, щоб надати аналітикам деякі рекомендації.
На щастя, призначення дозволів не було повністю випадковим. Найпоширеніший спосіб налаштування нового співробітника — це попросити, щоб його налаштували "так само, як Джо", фактично створюючи систему прототипів на ходу.
Вам буде надано списки контролю доступу (ACL) для верхніх рівнів каталогів спільного файлового сервера. Використовуючи їх, ваша команда повинна написати програму, щоб розділити користувачів на класи еквівалентності, де всі члени класу мають доступ до точно тих самих каталогів.
Через наявність кількох відділів у GamesAreUs.com, існує кілька списків контролю доступу, які потрібно обробити: один набір списків на відділ.
Вхідні дані
Перша строка вхідних даних для вашої програми — це одне ціле число n (0 < n < 100), яке знаходиться на окремій строкі без пробілів, що вказує на кількість відділів. Далі йдуть дані для цих відділів.
ACL, пов'язаний з одним відділом, є послідовністю ACL, яка закінчується "-1" на окремій строкі. Кожен ACL — це строка з невід'ємних цілих чисел (1 ≤ x ≤ 2147483647), розділених між собою одним пробілом. Перше число в строкі — це ідентифікатор файлу (FID) каталогу. Решта чисел у строкі — це ідентифікатори користувачів (UID), які мають доступ. Кожна строка матиме FID і принаймні один UID. На строкі не буде повторюваних UID, але зауважте, що UID і FID знаходяться в окремих просторах, тому UID може бути тим самим числом, що й FID. ACL, а також UID у межах ACL, з'являються в довільному порядку. У повному списку ACL даний FID з'явиться лише один раз. Існує не більше 50 ACL верхнього рівня каталогів і не більше 100 UID. Усі FID і UID більші за 0.
Вихідні дані
Для кожного відділу перша строка вихідних даних ідентифікує, який випадок обробляється, починаючи з 1. Ця строка містить слово "Case", один пробіл і ціле число, яке ідентифікує, який це випадок.
Для кожного класу з принаймні 2 членами надрукуйте строку з кількістю членів у класі без знака або провідних нулів, один пробіл і найменший UID у класі без знака, провідних нулів або пробілів у кінці. Відсортуйте вихідні дані за кількістю членів у порядку спадання, а потім за UID у порядку зростання. Якщо таких класів немає, надрукуйте "no prototypes found".