Yönetici Özeti
Giriş Verilen k, tamsayılar bir bölümü bulmak 1için niçine kbüyük-toplamı serbest alt kümeleri n10 dakika içinde yapabilirsiniz.
Arka plan: Schur numaraları
Bir dizi Aolan toplamı içermeyen kendiliğinden toplamı iseA + A = { x + y | x, y in A} onunla ortak hiçbir elemanları vardır.
Her pozitif tamsayı için, kümenin toplamsız altkümelere bölünebileceği en kbüyük bir tamsayı vardır . Bu sayı k denir inci Schur numarası (OEIS A045652 ).S(k){1, 2, ..., S(k)}k
Örneğin S(2) = 4,. {1, 2, 3, 4}Olarak bölümleyebiliriz {1, 4}, {2, 3}ve bu iki toplamsız alt kümeye benzersiz bölümdür, ancak şimdi 5her iki bölüme de bir ekleyemeyiz .
Meydan okuma
Aşağıdakileri yapan deterministik bir program yazın :
kGirdi olarak pozitif bir tamsayı alın- Geçerli Unix zaman damgasını stdout'a yazma
- Bir bölüm, bir dizi çıkışları
1içinniçinekartırmak için toplam içermeyen alt-nakım UNIX zaman etiketleri dizisi takip edilerek,.
Kazanan, ngirdi verildiğinde bilgisayarımda 10 dakika içinde en büyüğü için bir bölüm yazdıran program olacak 5. Bağlar, en büyükler için bir bölüm bulmak için en kısa sürede kırılacakn üç koşu boyunca ortalama , : bu nedenle çıktı zaman damgalarını içermelidir.
Önemli ayrıntılar:
- Ubuntu Precise'a sahibim, bu nedenle diliniz desteklenmiyorsa puan veremem.
- Intel Core2 Quad CPU'm var, bu yüzden multithreading kullanmak istiyorsanız 4'ten fazla iş parçacığı kullanmanın bir anlamı yok.
- Herhangi bir derleyici bayrağını veya uygulamasını kullanmamı istiyorsanız, cevabınızda açıkça belirtin.
- Girdiyi işlemek için kodunuzu özel olarak kullanamazsınız
5. - Bulduğunuz her iyileştirmenin çıktısını almanız gerekmez. Örneğin giriş için
2yalnızca bölümün çıktısını alabilirsinizn = 4. Ancak, ilk 10 dakika içinde hiçbir şey çıkarmazsanız, o zaman puan vereceğimn = 0.
n=59ve daha az izin sayıların en fazla sayıdaki göre sıralamanextNverirn=64. İzin verilmeyen sayılar listesinin uzunluğuna göre (tekrarlar olabilir) sıralama çok hızlı bir şekilde zarif birn=30desene yol açar .