پایگاه‌دادهٔ موسیقی‌ها

Time Limit: 3 Seconds    Memory Limit: 16384 KB

‫شرکت فسنقری، در حال راه‌ اندازی یک سیستم هوش مصنوعی برای پیشنهاد موسیقی به کاربرهاست. اکنون بخش هوش این سیستم به انتها رسیده اما هنوز رابط درستی بین داده‌های موجود و بخش هوش سیستم وجود ندارد!
‫دو نوع داده جهت سیستم پیشنهاد موسیقی قابل استفاده است:
‫• داده‌های مربوط به هر کاربر. این داده‌ها شامل نام کاربری، سن، شهر و لیست نام آلبوم‌هاییست که این کاربر خریداری کرده است.
‫• داده‌های مربوط به هر آلبوم. این‌داده‌ها شامل نام آلبوم، نام خواننده، سبک و تعداد ترک‌های موسیقی این آلبوم هستند.
‫این سیستم داده‌ها را به‌طور خاصی درخواست می‌کند و باید آن‌ها را در اختیارش قرار دهیم. درخواست‌ها به صورت‌های زیر ممکن است باشند:
‫• درخواست تعداد آهنگ‌هایی که یک کاربر از یک خواننده خریده‌است.
‫• درخواست تعداد آهنگ‌هایی که یک کاربر از یک سبک خریده‌است.
‫• درخواست تعداد آهنگ‌هایی که کاربرهای با یک سن خاص، از یک خواننده خریده‌اند.
‫• درخواست تعداد آهنگ‌هایی که کاربرهای با یک سن خاص، از یک سبک خریده‌اند.
‫• درخواست تعداد آهنگ‌هایی که کاربرهای با یک شهر خاص، از یک خواننده خریده‌اند.
‫• درخواست تعداد آهنگ‌هایی که کاربرهای با یک شهر خاص، از یک سبک خریده‌اند.
‫البته این سیستم خیلی هم باهوش نیست و ممکن است در سؤال‌هایی که می‌پرسد نام کاربری، یا نام خواننده و یا هریک از فیلدهای مسئله اشتباه باشد و واقعاً در بین داده‌های سایت موجود نباشد.
‫حال به سراغ شما آمده‌ایم تا این رابط را برای ما بنویسید! برنامه‌ای بنویسید که داده‌های شرکت را به صورتی شبیه به YAML دریافت کند، سپس به درخواست‌های از انواع مختلف پاسخ بدهد.

Input

‫در خط اول ورودی n عددآمده‌است که نمایانگر تعداد داده‌های از نوع کاربر است. سپس این n داده به صورت YAML می‌آیند. پس از آن، در خط بعدی عدد m آمده‌است که نمایانگر تعداد داده‌های از نوع آلبوم است. سپس این m داده به صورت YAML می‌آیند.
‫در این YAMLها، فیلدهای نام کاربری، سن، شهر و لیست آلبوم‌ها برای هر کاربر به همین ترتیب می‌آیند و با کلیدهای زیر مشخص می‌شوند:
name
age
city
albums
‫همچنین فیلدهای نام آلبوم، نام خواننده، سبک و تعداد ترک‌های یک آلبوم به همین ترتیب می‌آیند و با کلیدهای زیر مشخص می‌شوند:
name
singer
genre
tracks
‫در فیلدهای age و tracks حتماً یک عدد بین ۱ تا ۳۰ می‌آید و در دیگر فیلدها رشته‌های متشکل از حداکثر ۱۰ کاراکتر از حروف کوچک انگلیسی می‌آید. و فرمت اعداد و رشته‌ها و فواصل، دقیقاً به شکل ورودی‌های نمونه خواهد بود. هر تب نیز با ۲ تا فاصله (space) مشخص می‌شود.
‫سپس در خط بعدی عدد q آمده‌ است که نمایانگر تعداد درخواست‌هایی است که برنامه شما باید به آن‌ها پاسخ دهد. سپس در هریک از q سطر بعدی، ابتدا شماره نوع درخواست و سپس توضیح آن می‌آید که به یکی از ۶ شکل زیر است:
1 user singer
2 user genre
3 age singer
4 age genre
5 city singer
6 city genre

Output

‫به ازای هر درخواست، برنامه‌ی شما باید یک عدد خروجی دهد که برابر با پاسخ آن درخواست است.

Sample Input

2
- name: gholi
  age: 18
  city: tehran
  albums:
    - tekunbede
    - barf
    - hoyad
- name: mehdi
  age: 20
  city: mashhad
  albums:
    - eclipse
    - barf
    - hoyad
4
- name: eclipse
  singer: malmsteen
  genre: classic
  tracks: 10
- name: barf
  singer: beeptunes
  genre: pop
  tracks: 22
- name: tekunbede
  singer: beeptunes
  genre: pop
  tracks: 14
- name: hoyad
  singer: hoyad
  genre: persian
  tracks: 5
7
1 gholi hoyad
1 gholi beeptunes
2 gholi rock
2 mehdi pop
3 20 beeptunes
4 18 malmsteen
4 19 malmsteen

Sample Output

5
36
0
22
22
0
0
Submit