কমপক্ষে h সঙ্গে কমপক্ষে h


42

ইনপুট

Nonnegative পূর্ণসংখ্যার একটি তালিকা।

আউটপুট

বৃহত্তম নননেজিটিভ পূর্ণসংখ্যা hযেমন hতালিকার অন্তত সংখ্যার চেয়ে কম বা সমান h

পরীক্ষার মামলা

[0,0,0,0] -> 0
[12,312,33,12] -> 4
[1,2,3,4,5,6,7] -> 4
[22,33,1,2,4] -> 3
[1000,2,2,2] -> 2
[23,42,12,92,39,46,23,56,31,12,43,23,54,23,56,73,35,73,42,12,10,15,35,23,12,42] -> 20

বিধি

আপনি একটি সম্পূর্ণ প্রোগ্রাম বা একটি ফাংশন লিখতে পারেন, এবং বেনামী ফাংশনগুলিও অনুমোদিত। এটি কোড-গল্ফ, তাই সবচেয়ে কম বাইট গণনা জিততে পারে। স্ট্যান্ডার্ড লুফোলগুলি অনুমোদিত নয়।

পটভূমি

এইচ-সূচক একাডেমিয়া ব্যবহৃত একটি ধারণা যা প্রভাব এবং গবেষক উৎপাদনশীলতা ক্যাপচার করার লক্ষ্যে কাজ করে যায়। উইকিপিডিয়া অনুযায়ী, একটি গবেষক সূচক আছে যদি সে প্রকাশিত হয়েছে, বৈজ্ঞানিক নিবন্ধ, প্রতিটি যা অন্তত অন্যান্য নিবন্ধে উল্লেখ করা হয়েছে বার। সুতরাং, এই চ্যালেঞ্জটি উদ্ধৃতি সংখ্যার একটি তালিকা থেকে এইচ-সূচকে গণনা করা।


হালনাগাদ

বাহ, চারিদিকে দুর্দান্ত উত্তর! আমি সংক্ষিপ্ততমটিকে গ্রহণ করেছি, তবে অন্য কেউ যদি আরও ছোট একটি নিয়ে আসে, আমি সেই অনুযায়ী আমার পছন্দ আপডেট করব।

ভাষা অনুসারে বিজয়ীরা

ভাষা দ্বারা বিজয়ীদের একটি টেবিল এখানে আমি আপডেট রাখার চেষ্টা করব। আমি ননজেটিভ স্কোর সহ সমস্ত পোস্ট অন্তর্ভুক্ত করেছি। আমি যদি এখানে ভুল করে থাকি তবে দয়া করে আমাকে সংশোধন করুন।

  • এপিএল : @ মরিসজুকা দ্বারা 7 বাইট
  • বাশ + কোর্টিলস : @ ডিজিটালট্রামা দ্বারা 29 বাইট
  • সি # : 103 বাইট @ লেজিওনম্যামাল978 দ্বারা
  • সি ++ : 219 বাইট @ ইউজার 9587 দ্বারা
  • সিজেএম : @ নটকি বাই 15 বাইট
  • গল্ফস্ক্রিপ্ট : 13 বাইট @ ইলমারি কারোনেন দ্বারা
  • হাস্কেল : 40 জন বাইটস @ প্রোডাবাসকেলারের মাধ্যমে
  • জে : 12 বাইট @ ɐɔıʇǝɥʇuʎs দ্বারা
  • জাভা : @ Ypnypn দ্বারা 107 বাইট
  • জাভাস্ক্রিপ্ট : 48 এড বাই 65 বাইট
  • গণিত : 38 বাইট বাই কুকাক 67
  • পার্ল : 32 নোট বাই নোটকি
  • পাইথ : @ আইসএইচজি দ্বারা 10 বাইট
  • পাইথন : 49 ফেয়ারস দ্বারা বাইট
  • আর : ২৯ বাইট @ মিকিটি দ্বারা
  • রুবি : @ ড্যানিরো দ্বারা 41 বাইট
  • স্কালা : @ চ্যাডরেটজ দ্বারা 62 বাইট
  • এসকিউএল : @ মিকিটি দ্বারা 83 বাইট
  • টিআই-বেসিক : @ টিমটেক দ্বারা 22 বাইট

উত্তর:


7

এপিএল 7

+/⊢≥⍋∘⍒

অনলাইনে চেষ্টা করা যেতে পারে tryapl.org এ

f←+/⊢≥⍋∘⍒
f¨(4⍴0)(12 312 33 12)(⍳7)(22 33 1 2 4)(1000 2 2 2)(23 42 12 92 39 46 23 56 31 12 43 23 54 23 56 73 35 73 42 12 10 15 35 23 12 42)
0 4 4 3 2 20

11

পাইথন, 52

f=lambda s,n=0:n<sum(n<x for x in s)and f(s,n+1)or n

একটি পুনরাবৃত্তি সমাধান। আপনি যদি অতিরিক্ত প্রবাহ সম্পর্কে উদ্বিগ্ন হন তবে স্ট্যাকলেস পাইথনে এটি চালান ।

থেকে শুরু করে n=0, কমপক্ষে n+1সংখ্যার কমপক্ষে কিনা তা যাচাই করে নিন n+1। যদি তা nহয় তবে ইনক্রিমেন্ট এবং আবার শুরু হয়। যদি না হয়, ফলাফল n

শর্তসাপেক্ষটি বুলিয়ানদের জন্য পাইথনের শর্ট সার্কিট ব্যবহার করে করা হয়। অভিব্যক্তি sum(n<x for x in s)মানগুলি গণনা সংখ্যা sযে তার চেয়ে অনেক বেশী হয় nসূচকটি Booleans, যা হিসাবে গণ্য করা হয় যোগ করে 0বা 1

তুলনার জন্য, পুনরাবৃত্ত সমতুল্য 2 টি অক্ষর দীর্ঘ। এটি পাইথন 2 প্রয়োজন।

s=input()
n=0
while n<sum(n<x for x in s):n+=1
print n

দুর্ভাগ্যক্রমে, পুনরাবৃত্তি হওয়ার আগে ইনপুটটি পরিবর্তনশীলটির জন্য সংরক্ষণ করা উচিত অন্যথায় পাইথন ইনপুটটি বারবার পড়ার চেষ্টা করবে।


11

পাইথ, 13 10 বাইট

tf<l-QUTT1

[22,33,1,2,4]STDIN এ যেমন একটি ফর্ম ইনপুট ।

এখানে চেষ্টা করুন।

কিভাবে এটা কাজ করে:

-QUTইনপুট ( Q) এর অন্তর্ভুক্ত সমস্ত সংখ্যা হ'ল কমপক্ষে যতটা চেক করা হচ্ছে, বড় T

<l-QUTTযদি তালিকার দৈর্ঘ্য কম হয় তবে সত্য T

f<l-QUTT1প্রথম পূর্ণসংখ্যার সন্ধান করে যা অভ্যন্তরীণ চেকের জন্য সত্য হয়ে ফিরে আসে 1এবং উপরে যায়।

tf<l-QUTT1 হ্রাস করে এক এক করে, সবচেয়ে বড় মান প্রদান করে যার জন্য শর্তটি মিথ্যা, যা এইচ-সূচক।

1 থেকে শুরু করে নিশ্চিত করা হয় যে 0যখন পরীক্ষা সর্বদা সত্য হয়, যেমন প্রথম পরীক্ষার ক্ষেত্রে returned


11

পাইথন 2, 49

ইনপুট উদাহরণ হিসাবে একই বিন্যাসে টাইপ করা উচিত।

i=0
for z in sorted(input())[::-1]:i+=z>i
print i

3
কি আশ্চর্যজনক অ্যালগরিদম!
গর্বিত হাস্কেলর

8

সিজেম, 15 বাইট

আমার পার্ল সমাধানের সরাসরি অনুবাদ।

l~{~}${W):W>},,

4
l~$W%{W):W>},,- 14 বাইট
অপ্টিমাইজার

@ অপ্টিমাইজার ধন্যবাদ, আমি প্রত্যাশা করেছি যে কোনও টেবিলটি উল্টানোর জন্য একটি ছোট উপায় থাকা উচিত। আমি অবাক হয়েছি যদিও মানচিত্রে পুনরাবৃত্তি গণনার কোনও অ্যাক্সেস নেই। যাইহোক 1 বাইট যদি আপনি নিতে পারেন তবে তা আমার প্রথম সিজেএম কোডের পক্ষে খারাপ নয়।
নটকি

এখানে এখন কয়েকটি 12-বাইট সমাধান রয়েছে: {$W%ee::<1b}( ee2015-04-17 যোগ করা হয়েছিল) এবং {$W%_,,.>1b}( .2015-02-21 যোগ করা হয়েছিল)।
পিটার টেলর

6

জে ( 13 12)

[:+/i.@#<\:~

এলোমেলো সমাধানের সাথে খুব সুন্দর। প্রদর্শন:

   f=:[:+/i.@:#<\:~
   f 0,0,0,0
0
   f 12,312,33,12
4
   f 1,2,3,4,5,6,7
4
   f 22,33,1,2,4
3
   f 1000,2,2,2
2
   f 23,42,12,92,39,46,23,56,31,12,43,23,54,23,56,73,35,73,42,12,10,15,35,23,12,42
20

#\<:পরিবর্তে ব্যবহার করা i.@#<একটি অক্ষর সংরক্ষণ করে।
অ্যালগরিদমশর্ক

5

গণিত, 44 42 40 38 বাইট

নামবিহীন ফাংশন:

LengthWhile[i=0;SortBy[#,-#&],#>i++&]&

শেষ পর্যন্ত ইনপুটটি টেপ করে এটি চালান:

In: LengthWhile[i=0;SortBy[#,-#&],#>i++&]&@{1,2,3,4,5,6,7}
Out: 4

@ মার্টিনবাটনার আপনি ঠিক বলেছেন, আমি এটি ব্যবহার করতে পারি #>i++। আমি আরও কিছু মামলা পরীক্ষা করেছি। (এবং সমস্ত পরামর্শের জন্য ধন্যবাদ!)
kukac67

4

এসকিউএল, 81 94 83

মানগুলির একটি সারণী (I) দেওয়া, নিম্নলিখিত কোয়েরিটি h প্রদান করবে। পোস্টগ্রেএসকিউএল পরীক্ষিত এবং এসকিউএল সার্ভারেও কাজ করবে। এটিকে NULL এর চেয়ে 0 ফেরত করুন Edit একটি নুন্টিকে ধন্যবাদ দিয়ে একটি COUNT দিয়ে আরও ভাল করা হয়েছে

SELECT COUNT(R)FROM(SELECT ROW_NUMBER()OVER(ORDER BY V DESC)R,V FROM I)A WHERE R<=V

এসকিউএলফিডাল উদাহরণ

মূলত এটি মানগুলির একটি ক্রমবর্ধমান বাছাইয়ের সারিগুলিকে সংখ্যায়িত করে। তারপরে এটি সর্বাধিক সারি সংখ্যা প্রদান করে যেখানে সারি সংখ্যাটি মানের সমান থেকে বেশি।


আপনি নাল সমস্যার জন্য সংক্ষিপ্ত স্থির COUNT(R)পরিবর্তে ব্যবহার করতে পারেন COALESCE(MAX(R),0)
নটকি

@ নটকি অবশ্যই ... ধন্যবাদ
মিকিটি

4

আর, 39 35 29

s=sort(i);sum(s>=length(s):1)

আমি এবং একটি বিপরীত সাজানোর যুক্তি ব্যবহার করে সংখ্যার একটি ভেক্টর দেওয়া এবং তারপর ভেক্টরের দৈর্ঘ্য যেখানে এলিমেন্ট সংখ্যার চেয়ে কম সেগুলি প্রদান করে। সুন্দর টিপের জন্য প্ল্যানাপাসকে ধন্যবাদ জানাই।

> i=c(23,42,12,92,39,46,23,56,31,12,43,23,54,23,56,73,35,73,42,12,10,15,35,23,12,42)
> s=sort(i);length(s[s>=length(s):1])
[1] 20
> i=c(0,0,0,0)
> s=sort(i);length(s[s>=length(s):1])
[1] 0

নিস! আপনি লজিকাল ভেক্টরকে সরাসরি s=sort(i);sum(s>=length(s):1)
সংশ্লেষ

3

সিজেম, 23 বাইট

l~:I,),W%{_If>:!:+>}$0=

এটি STDIN এর মতো অ্যারে হিসাবে তালিকাটি নেয়

[23 42 12 92 39 46 23 56 31 12 43 23 54 23 56 73 35 73 42 12 10 15 35 23 12 42]

এটি এখানে পরীক্ষা করুন।

আপনি সমস্ত পরীক্ষার কেস চালাতে এটি ব্যবহার করতে পারেন:

[0 0 0 0]
[12 312 33 12]
[1 2 3 4 5 6 7]
[22 33 1 2 4]
[1000 2 2 2]
[23 42 12 92 39 46 23 56 31 12 43 23 54 23 56 73 35 73 42 12 10 15 35 23 12 42]]
{:I,),W%{_If>:!:+>}$0=N}/

ব্যাখ্যা

l~:I,),W%{_If>:!:+>}$0=
l~:I                    "Read input, evaluate, store in I.";
    ,                   "Get length of input N.";
     ),W%               "Create range from 0 to N, reverse.";
         {         }$   "Sort stably.";
          _I            "Duplicate candidate h, push input list.";
            f>          "Map each number to 1 if it's less or 0 otherwise.";
              :!        "Invert all results.";
                :+      "Sum them up.";
                  >     "Check if the sum is less than the candidate h.";
                     0= "Pick the first element.";

যুক্তিটি কিছুটা পিছনের দিকে, তবে এটি কয়েকটা বাইট সংরক্ষণ করেছিল। মূলত, 0বৈধ প্রার্থীদের এবং 1অন্যথায় রিটার্নগুলি বাছাই করতে ব্লকটি পাস হয়েছিল । সুতরাং বৈধ প্রার্থীরা বাছাই করা অ্যারেতে প্রথম আসেন। এবং যেহেতু বাছাই স্থিতিশীল, এবং আমরা এন থেকে শুরু করে 1 এর তালিকা দিয়ে শুরু করব, এটি বৃহত্তম বৈধ এইচটি প্রদান করবে।


3

পার্ল 5: 32 (30 + 2 এর জন্য -pa)

#!perl -pa
$_=grep$_>$i++,sort{$b<=>$a}@F

STDIN এ স্থান পৃথক ইনপুট নেয়:

perl hidx.pl <<<'1 2 3 4 5 6 7'

1
sort{$b-$a}সংরক্ষণ 2 আরও বেশি
ভিড়

3

পাইথন (63)

মূলত আমার জে সমাধানের একটি সরাসরি বন্দর। স্পষ্টতই, অনেক দীর্ঘ, হিসাবে কেউ কল্পনা করতে পারে।

lambda x:sum(a>b for a,b in zip(sorted(x)[::-1],range(len(x))))

আপনি কিছু অক্ষর ব্যবহার করে সংরক্ষণ করতে পারেন enumerate
xnor


3

রুবি 44 41

এক্সনোর পাইথন সমাধান হিসাবে পুনরাবৃত্ত, কম-বেশি একই কৌশল:

f=->a,n=0{a.count{|x|x>n}<n+1?n:f[a,n+1]}

রুবি 52

অ রিকার্সিভ:

f=->a{a.size.downto(0).find{|x|a.count{|y|y>=x}>=x}}

"স্ট্যাবি" ল্যাম্বদা / বেনামে ফাংশনগুলির জন্য রুবি 1.9 বা আরও নতুন প্রয়োজন। যেমন কল সঙ্গেf[[22,33,1,2,4]]


3

বাশ + কোর্টিলস, 29

sort -nr|nl -s\>|bc|grep -c 0

নতুন লাইন-বিচ্ছিন্ন তালিকা হিসাবে স্টিডিন থেকে নেওয়া ইনপুট।

  • sort অবতরণ ক্রমে পূর্ণসংখ্যা
  • nl প্রতিটি লাইনটিকে তার 1-ভিত্তিক লাইন সংখ্যার সাথে উপসর্গ করে, রেখার সংখ্যাটি পৃথক করে এবং বাকী রেখাকে বৃহত্তর-এর সাথে পৃথক করে >
  • গাণিতিকভাবে প্রতিটি লাইন সঙ্গে মূল্যায়ন bc। তাদের লাইন সংখ্যার চেয়ে কম পূর্ণসংখ্যার ফলাফল ০. অন্যথায় 1।
  • grepএর সংখ্যাকে গণনা করে 0, মানে বৃহত্তর বা সমান সংখ্যার সংখ্যাh

উদাহরণ

$ for i in {23,42,12,92,39,46,23,56,31,12,43,23,54,23,56,73,35,73,42,12,10,15,35,23,12,42}; do echo $i; done | ./atleasth.sh
20
$ for i in {1,2,3,4,5,6,7}; do echo $i; done | ./atleasth.sh
4
$ 

2

জাভাস্ক্রিপ্ট (ES6) 48

পুনরাবৃত্তির সমাধান।

F=(l,h=-1)=>l.filter(v=>v>h).length>h?F(l,h+1):h

টেস্ট ফায়ারফক্স / Firebug কনসোলে

;[
  [0,0,0,0],
  [12,312,33,12],
  [1,2,3,4,5,6,7],
  [22,33,1,2,4],
  [1000,2,2,2],
  [23,42,12,92,39,46,23,56,31,12,43,23,54,23,56,73,35,73,42,12,10,15,35,23,12,42]
 ].forEach(l=>console.log(l,F(l)))

আউটপুট

[0, 0, 0, 0] 0
[12, 312, 33, 12] 4
[1, 2, 3, 4, 5, 6, 7] 4
[22, 33, 1, 2, 4] 3
[1000, 2, 2, 2] 2
[23, 42, 12, 92, 39, 46, 23, 56, 31, 12, 43, 23, 54, 23, 56, 73, 35, 73, 42, 12, 10, 15, 35, 23, 12, 42] 20

47 বাইট: f=(l,h=0)=>l.map(v=>x+=v>h,x=0)&&x>h?f(l,h+1):h। যাইহোক, আপনার সমাধান 47 বাইট খুব যদি আপনি শুধু পরিবর্তন হতে পারে h=-1থেকে h=0
vrugtehagel

2

জাভা 8, 116 বাইট।

সম্পূর্ণ শ্রেণি:

import java.util.*;
import java.util.stream.*;

class H{

    public static void main(String[]a){
        System.out.println(new H().f(Stream.of(a[0].split(",")).mapToInt(Integer::parseInt).toArray()));
    }

    int i;

    int f(int[]n){
        Arrays.sort(n);
        i=n.length;
        Arrays.stream(n).forEach(a->i-=a<i?1:0);
        return i;
    }
}

ফাংশন:

import java.util.*;int i;int f(int[]n){Arrays.sort(n);i=n.length;Arrays.stream(n).forEach(a->i-=a<i?1:0);return i;}}


2

সি ++ 815 219 এর থেকে (ডাব্লুসি -cc main.cpp)

ঠিক আছে আমি এখানে লিখেছি সবচেয়ে খারাপ কোড কিছু! :)

#include <iostream>
#include <list>
using namespace std;int main(int c,char** v){list<int>n(--c);int h=c;for(int&m:n)m=atoi(*(v+(h--)));n.sort();for(auto r=n.rbegin();r!=n.rend()&&*r++>++h;);cout<<(h==c?h:--h)<<endl;}

2

জেলি, 6 বাইট

NỤỤ<’S

ব্যাখ্যা:

N           Negate (so that repeated elements won't mess up the second grade down)
 Ụ          Grade down
  Ụ         Twice.
   <’       Predicate, check for each element if the new one (after grading) is lower than original array (minus 1 on each element)
     S      Sum


1

গল্ফস্ক্রিপ্ট, 13 বাইট

$-1%0\{1$>+}/

এই কোডটি অনলাইনে পরীক্ষা করুন। 1

স্ট্যাকের একটি অ্যারে হিসাবে ইনপুট নেয়। ফেয়ারসামের পাইথন সলিউশন হিসাবে একই অ্যালগরিদম ব্যবহার করে অ্যারেতে সংখ্যাগুলির উপর পুনরাবৃত্তি করা এবং 0 থেকে একটি কাউন্টার বাড়ানো যতক্ষণ না এটি অ্যারের বর্তমান উপাদানটির সমতুল্য হয় বা অতিক্রম করে।

1) অনলাইন গল্ফস্ক্রিপ্ট সার্ভারটি আবার এলোমেলো সময় শেষ করছে বলে মনে হচ্ছে। প্রোগ্রামটি যদি আপনার জন্য সময়সীমা বেঁধে দেয় তবে এটি আবার চালানোর চেষ্টা করুন।


1

টিআই-বেসিক, 22 বাইট

এএসসিআইআই প্রতিনিধিত্ব:

Input L1:1:While Ans≤sum(Ans≥L1:Ans+1:End:Ans

হেক্স ডাম্প:

DC 5D 00 3E 31 3E D1 72 6D B6 72 6C 5D 00 3E 72 70 31 3E D4 3E 72

ইনপুট হিসাবে একটি তালিকা পেতে। আনস = 0 থেকে শুরু করে, সংখ্যার কমপক্ষে উত্তর + 1 কমপক্ষে উত্তর + 1 কিনা তা যাচাই করে। যদি তা হয় তবে ইনক্রিমেন্টগুলি উত্তর এবং আবার লুপ হয়। যদি তা না হয় তবে ফলাফলগুলি উত্তর দেয়।


1

জেজিএল আলফা 1.2 - 14

প্রশ্নের পরে 'সি' বিপরীত অ্যারে কার্যকারিতা যুক্ত করা হয়েছে বলে গণনা করা হয় না , তবে যাইহোক মজাদার জন্য উত্তর দিচ্ছি।

ধরে নিই যে অ্যারেটি স্ট্যাকের প্রথম আইটেম, এবং উত্তরটি স্ট্যাকের শীর্ষে রাখে।

0SJC{Sd@>+1}/S

মুদ্রণ করতে, Pশেষে একটি বাইট যুক্ত করুন।

ব্যাখ্যা:

0               Push the number 0 (the counter)
 SJC            Swap to array, sort and reverse
    {Sd@>+1}/   For each item in the array, add 1 to counter if counter is less than item
             S  Swap counter to top of stack

1

জে, 15 11 টি অক্ষর

(বর্তমানের সংক্ষিপ্ততম জে দ্রবণ।)

   [:+/#\<:\:~

   ([:+/#\<:\:~) 1 2 3 4 5 6 7
4

তুলনা <:অনুসারে সাজানো তালিকা \:~1..n +1 উপাদানের #\এবং গন্য সত্য তুলনা +/

100 টি এলোমেলো পরীক্ষার ক্ষেত্রে অন্যান্য জে সমাধানের সাথে সাদৃশ্য পরীক্ষা করা:

   */ (([:+/#\<:\:~) = ([:+/i.@#<\:~))"1 ?100 100$100
1

1

রেং v.3.2, 43 বাইট

1#xk#yaïí'1ø ~n-1$\
1+)x(%:1,%1ex+y1-?^#y#x

এখানে চেষ্টা করুন! এই কোডটি তিন ভাগে বিভক্ত হতে পারে: প্রাথমিক, গণনা এবং চূড়ান্ত।

প্রাথমিক

1#xk#yaïí'1ø

এই দোকানে 1করার x, ইনপুট স্ট্যাক দৈর্ঘ্য kথেকে y, এবং সমস্ত ইনপুট (পায় aïí) যা পরে অনুসারে বাছাই করা হয় ( ')। পরের লাইনে যায়, অর্থাৎ পরের অংশে।

কম্প্যুটেশনাল

1+)x(%:1,%1ex+y1-?^#y#x

অসমের জন্য রেংয়ের কোনও অন্তর্নির্মিত ব্যবস্থা নেই। সুতরাং, একটি অ্যালগরিদম প্রয়োগ করা আবশ্যক। আমি যে সংক্ষিপ্ততম অ্যালগরিদমটি পেয়েছি a < bতা হ'ল %:1,%1e; এটি দেখতে এরকম দেখাচ্ছে:

Command | Stack
  ---   | a, b
   %    | a/b
   :    | a/b, a/b
   1    | a/b, a/b, 1
   ,    | a/b, (a/b)%1
   e    | (a/b) == ((a/b)%1)

আমি নিশ্চিত যে এটি পরিষ্কার হয়েছে! আমাকে আরও ব্যাখ্যা করুন। x % 1অর্থাৎ মডুলাস 1, মানচিত্র xথেকে (-1,1)। আমরা জানি যে (a/b) % 1হয় a/bযখন a < b। সুতরাং, এই অভিব্যক্তি সমান a < b

তবে শূন্যের সাথে মডুলাসের সমস্যার কারণে এটি বেশ ভাল কাজ করে না। সুতরাং, আমরা স্ট্যাক এবং কাউন্টারটির প্রতিটি সদস্যকে প্রাথমিকভাবে বৃদ্ধি করি।

আমরা স্ট্যাকের উপর বুলিয়ান অসমতার পরে, x+এটি এক্স যোগ করে, কিন্তু মুহুর্তের জন্য এটি স্ট্যাকের উপর ছেড়ে দেয়। y1-হ্রাস y, এবং ?^iff উপরে যায় y == 0এবং আমরা চূড়ান্ত পর্যায়ে এগিয়ে যান। অন্যথায়, আমরা করা y-1মধ্যে yএবং নতুন xমধ্যে x

চূড়ান্ত

             ~n-1$\

এটি y-1স্ট্যাক থেকে অবশিষ্টগুলি পপ করে , ফলাফল হ্রাস করে, আউটপুট দেয় এবং প্রোগ্রামটি শেষ করে।



0

গণিত, 57 বাইট

FirstCase[Range[Length@#,0,-1],h_/;Count[#,k_/;k>=h]>=h]&

এটি একটি বেনামি ফাংশন একটি তালিকা গ্রহণ করে এবং পূর্ণসংখ্যার মত ফিরিয়ে দেয়

FirstCase[Range[Length@#,0,-1],h_/;Count[#,k_/;k>=h]>=h]&@{1,2,3,4,5,6,7}

সমস্ত পরীক্ষার কেসগুলি পরীক্ষা করতে এটি ব্যবহার করুন:

FirstCase[Range[Length@#,0,-1],h_/;Count[#,k_/;k>=h]>=h]& /@ {
  {0, 0, 0, 0},
  {12, 312, 33, 12},
  {1, 2, 3, 4, 5, 6, 7},
  {22, 33, 1, 2, 4},
  {1000, 2, 2, 2},
  {23, 42, 12, 92, 39, 46, 23, 56, 31, 12, 43, 23, 54, 23, 56, 73, 35,
    73, 42, 12, 10, 15, 35, 23, 12, 42}
}

0

সি #, 103

বেনামে ফাংশন।

a=>{try{return a.OrderBy(b=>-b).Select((b,c)=>new{b,c}).First(b=>b.b<b.c+1).c;}catch{return a.Length;}}

ইন্ডেন্টযুক্ত:

a =>
{
    try
    {
        return a.OrderBy(b => -b).Select((b, c) => new { b, c }).First(b => b.b < b.c + 1);
    }
    catch
    {
        return a.Length;
    }
}

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.