Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

FR_18_16 - Karuzela VAT

Karuzela; grafika na potrzeby zadania, zrodlo: https://upload.wikimedia.org/wikipedia/commons/thumb/3/38/Krak%C3%B3w_Koz%C5%82%C3%B3wek_-_the_carousel_on_the_playground_for_children.JPG/1024px-Krak%C3%B3w_Koz%C5%82%C3%B3wek_-_the_carousel_on_the_playground_for_children.JPG

W uproszczeniu można powiedzieć, że warunkiem koniecznym przestępstwa karuzelowego jest prowadzenie transakcji w taki sposób, iż dane dobro nabywane jest przez polską firmę od firmy zagranicznej, a następnie, po choć jednej dodatkowej odsprzedaży na terenie kraju, trafia ponownie za granicę. Co ważne, wyprowadzenie towaru z kraju oraz jego sprowadzenie nie może być dokonane przez ten sam podmiot.

Twoim zadaniem jest wykrycie tych polskich firm dokonujących wewnątrzwspólnotowej dostawy towarów (WDT), które mogą uczestniczyć w karuzeli podatkowej. Innymi słowy interesują nas polskie firmy, które:

  • nabywają od innej polskiej firmy produkt, który został wprowadzony zza granicy na rynek krajowy przez inny podmiot,
  • sprzedają dany towar do innych krajów unijnych.

Zakładamy, że nazwy towarów są zgodne ze stanem faktycznym. Mówiąc wprost, jeżeli przedmiotem transakcji między sprzedającym A oraz kupującym B jest towar o nazwie "termos", który to towar zakupi dalej od kontrahenta B przedsięborstwo C, odpowiednia transakcja między B a C będzie również dotyczyła towaru o nazwie "termos".

Wejście

Na wejściu podana zostanie liczba przedsiębiorstw c (c < 105). Następnie, w kolejnych c liniach, unikatowe ID będące dziewięcioznakowym ciągiem, zaczynającym się od dwóch wielkich liter alfabetu angielskiego, po których występują cyfry. Litery "PL" oznaczają Polskę, a pozostałe – inne kraje unijne.

Później, w nowej linii, podana będzie liczba transakcji t (t < 105). Dalej, w t liniach, zostaną przedstawione transakcje. Każda z nich opisana będzie trzema ciągami znaków rozdzielonych pojedynczymi spacjami. Pierwsze dwa ciągi będą ID należącymi do zbioru ID podanych uprzednio na wejściu. Pierwszy z nich określa sprzedawcę, a drugi – nabywcę. Trzeci ciąg to przynajmniej jedna oraz maksymalnie dwadzieścia liter alfabetu angielskiego lub znaków podkreślenia i określa on nazwę towaru, którego dotyczy transakcja.

W testach wprowadzono ograniczenie na maksymalną liczbę różnych towarów – jest ich nie więcej niż 10. Dopuszczamy przypadki, gdy transakcje dokonywane są w obrębie danego podmiotu (firma sprzedaje towar sama sobie). Dane testowe zostały dobrane w taki sposób, że rozwiązanie jest jednoznaczne. Przez jednoznaczny dobór danych wejściowych należy rozumieć, iż nie wystąpi przypadek, kiedy dana firma jednocześnie spełnia i nie spełnia warunków podanych w treści zadania. Przykładowo, nie wystąpi test taki, jak poniżej, gdzie PL0045064 importuje towar od firmy zagranicznej i przekazuje go innej firmie zagranicznej, ale jednocześnie może uczestniczyć w karuzeli wraz z podmiotem PL0088311.

5
MA0011060
PL0045064
NE0026320
PL0088311
OU0037262
4
PL0088311 PL0045064 towarX
PL0045064 OU0037262 towarX
NE0026320 PL0045064 towarX
MA0011060 PL0088311 towarX

Wyjście

Na wyjściu należy podać, w kolejności leksykograficznej (tzn. zgodnej z kolejnością kodów ASCII poszczególnych znaków), kolejne towary, które mogły uczestniczyć w przestępstwie karuzelowym, a dodatkowo po każdym z nich należy wypisać, w kolejności leksykograficznej (tzn. tak jak towary), ID polskich firm, które dokonały WDT z wykorzystaniem tych dóbr.

Przykład

Wejście:

19
PL0000001
PL0000002
PL0000003
PL0000004
PL0000005
PL0000006
PL0000007
PL0000008
PL0000109
PL0000009
PL0000010
PL0000011
PL0000012
PL0000013
PL0000014
DE0000001
DE0000002
DE0000003
DE0000004
26
DE0000001 DE0000001 woda
DE0000001 PL0000005 etanol
PL0000001 PL0000002 zeszyty_male
PL0000001 PL0000002 etanol
PL0000002 PL0000001 etanol
DE0000002 PL0000007 meble
PL0000002 PL0000001 poduszki
PL0000001 PL0000003 pomidory
PL0000003 PL0000004 mieszkania
PL0000003 PL0000006 piwo
PL0000003 PL0000005 woda
PL0000005 DE0000002 alkohol
PL0000007 PL0000008 meble
PL0000009 DE0000004 meble
PL0000003 PL0000004 poduszki
PL0000003 PL0000005 poduszki
PL0000003 PL0000006 puszki
PL0000008 PL0000009 meble
PL0000008 PL0000010 meble
PL0000010 PL0000011 meble
PL0000011 PL0000009 meble
PL0000011 DE0000004 meble
PL0000011 PL0000012 meble
PL0000012 PL0000013 meble
PL0000013 PL0000014 meble
PL0000014 DE0000004 meble

Wyjście:

meble
PL0000009 PL0000011 PL0000014

Wyjaśnienie:

Firma PL0000007 sprowadza do kraju meble, które – po kolejnych transakcjach krajowych – trafiają do firm PL0000009, PL0000011 oraz PL0000014. Następnie przedsiębiorstwa te wyprowadzają towar z kraju. W związku z tym spełniają one założenia zadania.


Dodane przez:anonimowy
Data dodania:2023-12-30
Limit czasu wykonania programu:1s-5s
Limit długości kodu źródłowego50000B
Limit pamięci:1536MB
Cluster: Cube (Intel G860)
Języki programowania:All except: ASM32-GCC COBOL D-CLANG D-DMD ELIXIR FANTOM GOSU GRV JS-MONKEY NIM OBJC OBJC-CLANG PICO RUST SCM qobi CHICKEN VB.NET

© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.