1 / 2
Jun 2021

Jestem wielkim fanem języka Swift (jego aktualna wersja to 5.4 i nadchodzi już wersja 5.5 ze wsparciem asynchronicznym i równoległym). Ponieważ SPOJ testuje programy na Swift 4.2.2 i przypuszczam że administratorom raczej nie będzie się chciało jego upgrade’ować zatem czy jest możliwość (do ko go się zwrócić i gdzie?) aby mieć dostęp do danych testowych zadań (czy jest to możliwe?), aby samemu dokładnie testować swoje rozwiązania z nowymi featurami języka (np. szczególnie ciekawe są rozwiązania wykorzystujące mechanizm Combine (dla algorytmów reaktywnych czyli funkcyjnych i asynchronicznych) w wersji 5 - algorytmy równoległe i współbieżne da się zrobić w wersji 4 tylko w GCD i Operations)?
Na ideone poniższy kod ujawnia że programy są dopuszczane tylko do jednego cora i zablokowana jest współbieżność na nim (A jak jest tutaj? - może się mylę - OS dopuszcza pracę tylko w jednym wątku?).

import Foundation

DispatchQueue(label: "zero").async {
    (1...1000).forEach { _ in
        print(0, terminator: "")
    }
}

DispatchQueue(label: "one").async {
    (1...1000).forEach { _ in
        print(1, terminator: "")
    }
}

DispatchQueue(label: "two").async {
    (1...1000).forEach { _ in
        print(2, terminator: "")
    }
}

sleep(1)
  • created

    Jun '21
  • last reply

    Jun '21
  • 1

    reply

  • 506

    views

  • 2

    users

Jeden ze sposobów, to zostanie adminem. Przypuszczam, że wtedy i mógłbyś upgrejdować i oczywiście mieć dostęp do wszystkich danych testowych zadań.

Na ten momen, dla wielu zadań, możesz samodzielnie wygenerować - programowo - swoje własne testy, nawet lepsze od autorskich.

Czy u Ciebie na komputerze, w/w program wypisuje:
012012012 … itd w sumie 1000 razy?

PS
Wydaje mi się, że najpierw lepiej nauczyć się dobrze pisać synchroniczne kody a dopiero potem zacząć zabawę jak w tytule, ale oczywiście mogę się mylić. W każdym razie spoj nie wspiera takich metod.

Suggested Topics

Want to read more? Browse other topics in System SPOJ or view latest topics.