Data Analyst
Pewnego razu, stażystka ds. oszustw w Yandex Ads dołączyła do zespołu. Gdy grupa oszustów działała, symulując ruch na swoich stronach za pomocą botów, i tym samym otrzymywała pieniądze za wyświetlenia reklam od botów, zadaniem stażystki było znaleźć wszystkie takie fałszywe strony z fałszywym ruchem. Co ciekawe, cały ruch na tych stronach był generowany z podmiany IP, co sprawiało, że wyglądało, jakby bot odwiedzał stronę z miasta A, ale w rzeczywistości urządzenie znajdowało się w zupełnie innym miejscu. Minęło dużo czasu, a stażystka próbowała objąć całą tę grupę oszustów, nawet udawało jej się częściowo złapać niektóre strony. Ale nie udało się złapać całej sieci. Po pewnym czasie zauważyła wiadomość: w mieście A, 02.08.2025, całkowicie zniknął internet mobilny. Jednak internet przewodowy (domowy) nadal działał. Biorąc to pod uwagę, jak stażystka może znaleźć wszystkie fałszywe strony? Posiadasz logi stron w formacie tabeli za okres od 30.07.2025 do 10.08.2025: timestamp | site_id | city_id Każdy wpis odpowiada odwiedzinom strony przez jedno urządzenie. Wiemy, że ruch botów zmienia się znacznie mniej niż ruch rzeczywisty na co dzień. Twoim zadaniem jest znaleźć wszystkie strony, których ruch składał się głównie z botów, które podmieniły swój region na miasto A. Uwaga Tabela zawierająca dane nazywa się logs. Przykład wpisu w tabeli: timestamp | site_id | city_id [phone]:13:53 | 6e84d9b71ca44aea | A
Afanasy przez 2 tygodnie pracował nad napisaniem kodu, który potrafiłby rozwiązać japońskie krzyżówki z obsługą dziewięciu kolorów, kiedy na spotkaniu zespołu kolega powiedział mu, że sam potrafi poradzić sobie z zadaniem szybciej, i w programie nie ma już sensu. Ale Afanasy, będąc optymistą, postanowił dalej ćwiczyć to zadanie i zrobić coś następującego — oszacować, jak dobrze kolega radzi sobie z krzyżówkami. Do tego celu wybrał analog metryki IoU — obliczenia będą podobne do klasycznego Intersection Over Union, ale według kolorów. Działa to tak: każda pasująca komórka w oryginale i w rozwiązaniu według koloru dodaje 1 do licznika, a w mianowniku dodaje się 1 za każdą komórkę w oryginale i w rozwiązaniu (dla pasujących komórek dodaje się tylko raz). Następnie oblicza się średnią na podstawie liczby kolorów w oryginalnym obrazie, zaokrągloną do dwóch miejsc po przecinku; zero nie jest uważane za kolor, więc metryka nie powinna być obliczana dla komórek tego koloru. Wejście zaczyna się od linii zawierającej liczbę wierszy n i kolumn m (w tej kolejności). Następnie podane są 2n linii, zawierających m liczb oddzielonych spacjami — pierwsze n dotyczą przesłanego krzyżówki, a kolejne n — oryginalnego obrazu. Zakłada się, że każda linia, począwszy od drugiej, zawiera dokładnie m liczb. Jako odpowiedź należy wypisać liczbę zaokrągloną do dwóch miejsc po przecinku, jak na przykładach. Oto kilka przykładów: 1. Pierwszy przykład [phone] -> 1.0 Wyjaśnienie: wkład pasujących i niepasujących komórek (1.0 + 1.0 + 1.0 + 1.0) / liczba kolorów (4) 2. Drugi przykład [phone] -> 0.08 Wyjaśnienie: wkład pasujących i niepasujących komórek (0.25 + 0.0 + 0.0) / liczba kolorów (3); zera nie są brane pod uwagę, ani jako komórki w reprezentacjach, ani w liczbie kolorów. 3. Trzeci przykład [phone] gdzie przesłany obraz zaczyna się [phone] — gdzie kończy się przesłany obraz 0 1 2 — gdzie zaczyna się oryginalny obraz [phone] -> 0.47 Wyjaśnienie: wkład pasujących i niepasujących komórek (0.4 + 0.5 + 0.5) / liczba kolorów (3); zera nie są brane pod uwagę, ani jako komórki w reprezentacjach, ani w liczbie kolorów. 4. Czwarty przykład [phone] -> 0.0 Wyjaśnienie: wkład pasujących i niepasujących komórek (0.0) / liczba kolorów (1); zera nie są brane pod uwagę, ani jako komórki w reprezentacjach, ani w liczbie kolorów.
B. Prefiksy i Sufiksy Dany jest posortowany ciąg n zer. W każdym kroku można wybrać dowolną liczbę pierwszych lub ostatnich elementów tego ciągu i dodać jeden do wszystkich wybranych elementów. Czy można osiągnąć podany stan tego ciągu po pewnej liczbie takich operacji? Format wejścia Pierwsza linia zawiera liczbę całkowitą 1 ≤ n ≤ 100000 — liczbę elementów w ciągu. Druga linia zawiera n nieujemnych liczb całkowitych a1, a2, ..., an oddzielonych spacjami, gdzie ai ≤ 10^18 — pożądane końcowe elementy. Format wyjścia Wypisz "YES", jeśli taki stan jest osiągalny, i "NO" w przeciwnym razie. Przykład Wejście [phone] Wyjście YES Uwaga Stany [phone] można osiągnąć w następujący sposób: dodać jeden do pierwszych trzech elementów, otrzymując [phone] dodać jeden do ostatnich czterech elementów, otrzymując [phone] dodać jeden do ostatniego elementu, otrzymując [phone]
D. Chińskie fajerwerki Władimir kupił zestaw 3 chińskich fajerwerków. Wyglądają dokładnie tak samo i są pomieszane w pudełku, ale zgodnie z instrukcją mają różną niezawodność: 1. "Elita" — wskaźnik wadliwych 10% (prawdopodobieństwo sukcesu 0.9). 2. "Standard" — wskaźnik wadliwych 20% (prawdopodobieństwo sukcesu 0.8). 3. "Ekonomiczny" — wskaźnik wadliwych 40% (prawdopodobieństwo sukcesu 0.6). Władimir losowo bierze pierwszy fajerwerk, zapala go, i działa pomyślnie. Zadowolony, decyduje się wystrzelić pozostałe dwa jeden po drugim. Jaka jest szansa, że zarówno drugi, jak i trzeci fajerwerk również wystrzelą pomyślnie — bez defektu? Zaokrąglij odpowiedź do trzech miejsc po przecinku.
Czy proponowane rozwiązanie zadziała dla SQLite?
A. Najlepsza Laboratorium Naukowe W pewnym mieście kilka laboratoriów naukowych zajmuje się badaniem kultur bakteryjnych. Analizują ciąg próbek, gdzie każda próbka należy do określonego szczepu (typu bakterii). Główny uniwersytet badawczy biologii ogłosił konkurs: należy znaleźć maksymalną liczbę kolejnych próbek, które można przeanalizować, uwzględniając ograniczenie. Mianowicie: w dowolnym ciągłym odcinku analizowanej sekwencji nie może być więcej niż K różnych szczepów. Nasze laboratorium dąży do zostania najlepszym w mieście. Aby wygrać konkurs, musimy znaleźć dokładnie taką maksymalną długość odcinka, który spełnia surowy warunek. Liczymy na Ciebie, ponieważ w przypadku zwycięstwa laboratorium otrzyma grant, który otworzy nowe horyzonty dla naszych badań. Format wejścia W pierwszej linii podano dwie liczby: N — długość sekwencji próbek i K — ograniczenie na liczbę różnych szczepów. Druga linia zawiera N liczb — elementy sekwencji. Format wyjścia Program powinien wypisać liczbę maksymalnej długości odcinka sekwencji próbek. Przykład 1 Wprowadzenie [phone] Wyjście 3
D. Chińskie fajerwerki Vladimir kupił zestaw 3 chińskich fajerwerków. Wyglądają dokładnie tak samo i są pomieszane w pudełku, ale zgodnie z instrukcją, mają różną niezawodność: 1. "Elita" — wskaźnik wadliwych 10% (prawdopodobieństwo sukcesu 0.9). 2. "Standard" — wskaźnik wadliwych 20% (prawdopodobieństwo sukcesu 0.8). 3. "Ekonomiczny" — wskaźnik wadliwych 40% (prawdopodobieństwo sukcesu 0.6). Vladimir losowo bierze pierwszy fajerwerk, zapala go, i działa pomyślnie. Szczęśliwy Vladimir decyduje się wystrzelić pozostałe dwa jeden po drugim. Jaka jest szansa, że zarówno drugi, jak i trzeci fajerwerk będą sukcesem — bez defektu? Zaokrąglij odpowiedź do trzech miejsc po przecinku.