Catatan: tantangan ini melibatkan mengunduh dan memilah-milah halaman web HTML. Jika bahasa Anda tidak bisa menangani ini, Anda mungkin tidak ingin berpartisipasi dalam tantangan ini.
pengantar
Selalu ada diskusi di The Nineteenth Byte Chat tentang siapa yang memimpin kanan. Jadi, mari bantu semua orang keluar dan hitung jumlah total bintang per pengguna dalam obrolan.
Tantangan
Diberi bilangan bulat positif N
yang lebih besar dari nol, hitung pemimpin (s) dari kanan dari N
pesan yang terakhir dibintangi dalam obrolan. Pesan-pesan ini dapat dilihat di sini . Petunjuk: setiap halaman memiliki 50 pesan yang berkilau bintangnya. Output akan menjadi daftar 5 pengguna teratas dengan jumlah pesan yang berkilau bintangnya . Bonus dari -15% dari jumlah byte Anda akan diberikan jika Anda dapat menampilkan nama pengguna pengguna tersebut, tetapi tidak ada penalti yang akan diberikan jika Anda hanya menampilkan nomor id pengguna. Harap perhatikan bahwa ada kata-kata kotor dalam beberapa pesan yang berkilau bintangnya. Jika Anda peka terhadap jenis bahasa ini, lihat halaman dengan hati-hati.
Contoh (Gambar adalah kanan saat ini saat menulis tantangan ini):
- (RED) Input:
5
Output (Dengan bonus):[Geobits Sp3000 PhiNotPi Seadrus]
- (BIRU) Input:
10
Output (Tanpa bonus):[51024 17335 24697 116494 129255]
- (HIJAU) Input:
14
Output (Tanpa bonus):[51024 116494 141697 17335 24697]
Barang ekstra:
Ikatan di 5 teratas akan diurutkan berdasarkan nomor id pengguna terendah hingga tertinggi . Jika ada kurang dari lima pengguna, output saja leaderboard dengan slot kosong di akhir. Input dan output dapat dalam format apa pun. Output tidak perlu dikapitalisasi. Jika input lebih besar dari 50
, Anda masih harus menghitung pesan di halaman 2, halaman 3, dll. Anda dapat mengasumsikan bahwa input akan selalu di bawah 2^31
, dan juga tidak akan terlalu besar sehingga 1) lebih besar dari jumlah pesan yang berkilau bintangnya bahwa ada dan 2) tidak akan crash program (dengan membuat array ke besar, kehabisan memori, dll.).
Ini adalah kode-golf , kode terpendek dalam byte yang menang!
Papan peringkat
Berikut ini adalah Stack Snippet untuk menghasilkan leaderboard biasa dan gambaran umum pemenang berdasarkan bahasa.
Untuk memastikan bahwa jawaban Anda muncul, silakan mulai jawaban Anda dengan tajuk utama, menggunakan templat Penurunan harga berikut:
## Language Name, N bytes
di mana N
ukuran kiriman Anda. Jika Anda meningkatkan skor Anda, Anda bisa menyimpan skor lama di headline, dengan mencoretnya. Contohnya:
## Ruby, <s>104</s> <s>101</s> 96 bytes
Jika Anda ingin memasukkan beberapa angka dalam tajuk Anda (mis. Karena skor Anda adalah jumlah dari dua file atau Anda ingin membuat daftar hukuman penterjemah secara terpisah), pastikan bahwa skor sebenarnya adalah angka terakhir di tajuk:
## Perl, 43 + 2 (-p flag) = 45 bytes
Anda juga dapat membuat tautan nama bahasa yang kemudian akan muncul di cuplikan papan peringkat:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes
var QUESTION_ID=62182,OVERRIDE_USER=36670;function answersUrl(e){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"http://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>
Jawaban:
BrownRecluse ,
tanpa bonus = 536dengan bonus = 551-15% = 468 bMemasukkan
Keluaran
Memasukkan
Keluaran
CATATAN
Program ini (termasuk bonus) tidak mendukung karakter unicode - Maaf Vɪʜᴀɴ!
Program ini bekerja berdasarkan fitur standar bahwa setiap halaman berisi hampir 50 pesan berbintang secara default.
Lihat dengan jelas bahwa 60 dan 90 pesan terkandung dalam dua halaman pertama, sementara outputnya berbeda.
Ini adalah halaman pengunduhan dari bahasa pemrograman ini jika itu bukan milik Anda
Jika diperlukan, ini adalah program tanpa bonus 485 b
Memasukkan
Keluaran
Memasukkan
Keluaran
sumber
alex-a
dalam output?