ভ্রমণ কুমড়ো সমস্যা


23

পটভূমি:

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

টাস্ক:

গ্রামের অবস্থানগুলির তালিকা এবং একটি মোমবাতির জীবনকাল দেওয়া, সর্বাধিক সংখ্যক গ্রাম জ্যাক দেখতে পারে আউটপুট। আপনাকে নিজেই পাথটি মুদ্রণ করতে হবে না।

ইনপুট:

মোমবাতির জীবনকাল এবং কার্টেসিয়ান স্থানাঙ্ক ব্যবস্থায় গ্রামের অবস্থানের তালিকা। কুমড়ো প্যাচ জ্যাকের উত্স সর্বদা 0,0 এ থাকবে। আপনি যেভাবে যাইহোক ইনপুট ফর্ম্যাট করতে পারেন। জ্যাকের চলাচলকে সহজ করার জন্য, তিনি কেবল অনুভূমিকভাবে, উল্লম্বভাবে বা ত্রিভুজিভাবে স্থানান্তরিত করতে পারেন, যার অর্থ তার মোমবাতিটি প্রতিটি পদক্ষেপে জীবনের 1 ইউনিট 1 বা 1.5 কে হারিয়ে যাবে (তিনি খানিকটা বেশি সময় নেয়) units আজীবন 0 এর চেয়ে কম বা সমান হলে মোমবাতি জ্বলতে থাকে।

আউটপুট:

মোমবাতি জ্বলতে যাওয়ার আগে জ্যাক সর্বাধিক সংখ্যক গ্রামের সমান একটি পূর্ণসংখ্যার পরিদর্শন করতে পারে।

নিয়মাবলী:

এটি , তাই বাইট জেতে সংক্ষিপ্ততম কোড। স্ট্যান্ডার্ড লুফোলগুলি অনুমোদিত নয়।

পরীক্ষার কেস:

// Format [lifespan] [list of village coordinates] -> [maximum visit-able villages]

4 -1,0 1,0 2,0 3,0 4,0 5,0 -> 3
4 1,1 2,2 3,3 -> 2
5 1,1 2,1 3,1 4,1 5,0 5,1 -> 4

9
শিরোনামে গিগলিং
লুই মেন্ডো

3
"জ্যাকের
চলাচলকে

1
আমি মনে করি যদি আমি ভুল না হয় তবে আপনার প্রথম কেস আউটপুট 3 হওয়া উচিত
18/02

1
@ নাম্বারকনোট না, একবার যদি কোনও গ্রাম ভয় পেয়ে যায় তবে তারা একই কৌশলতে পড়বে না, সে কেবল একবারই প্রতিটি গ্রামকে ভয় দেখাতে পারে।
ইয়োডল

5
এটি একটি এন-কুমড়ো হার্ড সমস্যা, তাই সাধারণভাবে সর্বাধিক সংখ্যক গ্রামের সন্ধান করা কঠিন হতে পারে। সর্বাধিক সংখ্যক গ্রাম আছে?
edc65

উত্তর:


9

জেলি, 30 29 27 25 বাইট

_AṢæ..
0,0ṭṚç2\+\<S
Œ!ç€Ṁ

এটি অনলাইন চেষ্টা করুন!

স্পষ্টতই জেলির ডট পণ্য কেবলমাত্র একটি তালিকা আকারের অমিলটি উপেক্ষা করে এবং অন্যান্য অ্যারের অতিরিক্ত উপাদানগুলিকে গুণায় না, কেবল তাদের যোগ করে। 2 বাইট অফ শেভ

ব্যাখ্যা

_AṢæ..              Helper link to calculate distance. Arguments: a, b
_                     subtract the vertices from each other
 A                    take absolute values of axes
  Ṣ                   sort the axes
   æ..                dot product with [0.5]

0,0ṭṚç2\+\<S        Helper link to calculate max cities. Arguments: perm, max
0,0                   create pair [0,0]
   ṭ                  append that to the permutation
    Ṛ                 reverse the permutation (gets the [0,0] to the beginning)
     ç2\              find distances of each pair using the previous link
        +\            find all partial sums
          <           see if each sum was less than the max
           S          sum to count cases where it was

Œ!ç€Ṁ               Main link. Arguments: cities, max
Œ!                    get permutations of cities
  ç€                  find max cities for each permutation using the previous link
    Ṁ                 take the maximum

একটি মন্তব্যে, ওপি 1000 টি পর্যন্ত গ্রাম পরিচালনা করার অনুরোধ করে। তবে যে কোনও উত্তর যা সমস্ত ক্রিয়াকলাপ উত্পন্ন করে এবং সঞ্চয় করে তা এমনকি 15 টি গ্রাম (1300 বিলিয়ন ডলার
ক্রিয়াকলাপ

@ এডসি 65 কোথাও বলা হয়নি যে যতক্ষণ বড় অ্যালগোরিদম তাত্ত্বিকভাবে পর্যাপ্ত সময় এবং মেমরির ভিত্তিতে কাজ করে ততক্ষণ বড় আকারের পরীক্ষাগুলি হওয়া দরকার। (যে প্রোগ্রামগুলি আসলে এনএস 1000 এর জন্য টিএসপি সমাধান করতে পারে তা এত জটিল যে তারা আর গল্ফ
মজাতে

ঠিক আছে 1000 নয়, তবে 15ও নয়?
edc65

@ edc65 আমি এমন একটি অ্যালগরিদম খুঁজে পাই না যা দ্রুত এবং জেলিতে সহজেই প্রয়োগযোগ্য হবে । আমি অন্য কোনও ভাষায় আরও দক্ষ সমাধান (যেমন হেল্ড-কার্প) তৈরি করার দিকে নজর দিতে পারি। বিটিডাব্লু, উত্তরের কোনওটিই আসলে দ্রুত অ্যালগরিদম ব্যবহার করে না; জেএসটি আরও ভাল, তবে অনেকগুলি পরিসীমা সীমিত হলে ধীর গতির।
পূর্কাকুডারী

5

জাভা 7, 206 201 বাইট

5 কে বাইট বাঁচানোর জন্য কেভিন ক্রুইজসেনকে ধন্যবাদ

int f(float e,int[]a,int[]b){int x=0,y=0,c=0,d=0,t;float s;for(int i:a){s=(i!=x&b[c]==y)|(i==x&b[c]!=y)?Math.sqrt((t=i-x)*t+(t=b[c]-y)*t)*1:Math.abs(i-x)*1.5;d+=e-s>=0?1:0;e-=s;x=i;y=b[c++];}return d;}

Ungolfed

class Travellingpumpkin {

public static void main(String[] args) {

    System.out.println(f( 5 ,new int[] { 1,2,3,4,5,5 } , new int[] { 1,1,1,1,0,1 } ));

}
static int f( double e , int[]a , int[]b ) {
    int x = 0 , y = 0 , c = 0 , d = 0 , t;
    double s ;

    for ( int i : a ) {
    s = ( i != x & b[c] == y )|( i == x & b[c] != y )
         ? Math.sqrt( ( t = i - x ) * t + ( t = b[c] - y ) * t ) * 1
         : Math.abs( i - x ) * 1.5 ;


        d += e-s >= 0 ? 1 : 0 ;
        e -= s ;
        x = i ; y = b [ c++ ] ;
    }
    return d ;

}

   }

2
বেশ ভাল, "অসম্পূর্ণ" ফর্মটি অন্তর্ভুক্ত করা ভাল। যদিও আপনি পরিণত মধ্যে আমি মনে করি কোড সমালোচক হবে না কল এটা ungolfed। ;)
ওয়াইল্ডকার্ড

+1 টি। গল্ফের জন্য একটি জিনিস: আপনি i-xদু'বার এবং b[c]-yদু'বার ব্যবহার করেন , যাতে আপনি ,tints এ যুক্ত করতে পারেন এবং তারপরে এটি ব্যবহার করুন: Math.sqrt((t=i-x)*t+(t=b[c]-y)*t)*1পরিবর্তে Math.sqrt((i-x)*(i-x)+(b[c]-y)*(b[c]-y))*1
কেভিন ক্রুইজসেন

এটি কীভাবে সম্ভবত সাধারণ ক্ষেত্রে কাজ করতে পারে?
edc65

3

স্কালা, 196 বাইট

def f(l:Int,c:(Int,Int)*)=c.permutations.map(x=>((0,0)+:x sliding 2 map{p=>val Seq(c,d)=Seq((p(0)._1-p(1)._1)abs,(p(0)._2-p(1)._2)abs).sorted
c*1.5+(d-c)}scanLeft 0d)(_+_)takeWhile(_<l)size).max-1

Ungolfed:

def g (l: Int, c: (Int, Int)*) = {
    c.permutations
    .map { x =>
        ((0, 0) +: x).sliding(2).map({ p =>
            val Seq(c, d) = Seq((p(0)._1 - p(1)._1) abs, (p(0)._2 - p(1)._2) abs).sorted
            c * 1.5 + (d - c)
        }).scanLeft(0d)(_ + _).takeWhile(_ < l).size
    }.max - 1
}

Explanantion:

def f(l:Int,c:(Int,Int)*)= //defien a function with an int and a vararg-int-pait parameter
  c.permutations           //get the permutations of c, that is all possible routes
  .map(x=>                 //map each of them to...
    ((0,0)+:x                //prepend (0,0)
    sliding 2                //convert to a sequence of consecutive elemtens
    map{p=>                  //and map each of them to their distance:
      val Seq(c,d)=Seq(        //create a sequence of
        (p(0)._1-p(1)._1)abs,  //of the absolute distance between the x points
        (p(0)._2-p(1)._2)abs   //and he absolute distance between the y coordinates
      ).sorted                 //sort them and assign the smaller one to c and the larger one to d
      c*1.5+(d-c)              //we do the minimum difference diagonally
    }                        //we now have a sequence of sequence of the distances for each route
    scanLeft 0d)(_+_)       //calculate the cumulative sum
    takeWhile(_<l)          //and drop all elements that are larger than the candle lifespan
    size                    //take the size
  ).max-1                   //take the maximum, taht is the size of the largest route and subtract 1 because we added (0,0) at the beginning

3

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

বেনামে পুনরাবৃত্ত ফাংশন, প্যারামিটারটি sমোমবাতির জীবনকাল, প্যারামিটারটি lগ্রাম স্থানাঙ্কের তালিকার।

একটি গভীরতা প্রথম সার্চ , বাঁধন দূরত্ব মোমবাতি জীবদ্দশায় reachs যখন

f=(s,l,x=0,y=0,v=0,A=Math.abs,X=Math.max)=>X(v,...l.map(([t,u],i,[h,...l],q=A(t-x),p=A(u-y),d=(l[i-1]=h,p+q+X(p,q))/2)=>s<=d?v:f(s-d,l,t,u,1+v)))

কম গল্ফ করা নীচে স্নিপেট দেখতে

পরীক্ষা

f=(s,l,x=0,y=0,v=0,A=Math.abs,X=Math.max)=>
  X(v,...l.map(
      ([t,u],i,[h,...l],q=A(t-x),p=A(u-y),d=(l[i-1]=h,p+q+X(p,q))/2)=>
      s<=d?v:f(s-d,l,t,u,1+v)
  ))

// ungolfed version

F=(s, l, 
   x=0, y=0, // current position
   v=0 // current number of visited sites 
  ) =>
   Math.max(v, ...l.map(
     (
       [t,u], i, [h,...l], // lambda arguments
       q = Math.abs(t-x), p = Math.abs(u-y), // locals
       d = (p+q+Math.max(p,q))/2
     ) => (
       l[i-1] = h,
       s <= d 
         ? v 
         : F(s-d, l, t, u, v+1)
     ) 
  ))

;[[4,[[-1,0],[1,0],[2,0],[3,0],[4,0],[5,0]], 3]
,[4, [[1,1],[2,2],[3,3]], 2]
,[5, [[1,1],[2,1],[3,1],[4,1],[5,0],[5,1]], 4]
].forEach(test=>{
  var span=test[0],list=test[1],check=test[2],
      result = f(span, list)
  console.log(result==check?'OK':'KO',span, list+'', result)
})


3

এমএটিএল , 27 বাইট

EH:"iY@OwYc!d|]yyXl++Ys>sX>

সম্পাদনা (26 নভেম্বর 2016): Xlফাংশনে পরিবর্তনের কারণে এটি উপরের কোড দ্বারা প্রতিস্থাপন করতে হবে 2$X>। নীচের লিঙ্কগুলি সেই পরিবর্তনটি অন্তর্ভুক্ত করে।

এটি অনলাইন চেষ্টা করুন! বা সমস্ত পরীক্ষার কেস যাচাই করুন

ব্যাখ্যা

কুমড়া দূরত্ব দুই শহরের মধ্যে পৃথক Δ x এবং Δ Y প্রতিটি তুল্য যেমন পাওয়া যেতে পারে এ (| Δ এক্স | + + | Δ Y | + + MAX (| Δ x |, | Δ Y |)) / 2।

কোডটি এই পদক্ষেপগুলি অনুসরণ করে:

  1. এক্স স্থানাঙ্ক এবং y স্থানাঙ্কের সমস্ত ক্রম তৈরি করুন এবং প্রতি 0 এ একটি প্রিপেন্ড করুন প্রতিটি অনুমান একটি সম্ভাব্য পথকে উপস্থাপন করে।
  2. প্রতিটি পাথের জন্য পর পর পরের পার্থক্য গণনা করুন (এগুলি | Δ x | এবং | Δ y | উপরে)।
  3. প্রতিটি পথের প্রতিটি পদক্ষেপের জন্য কুমড়োর দূরত্ব অর্জন করুন।
  4. প্রতিটি পথের জন্য দূরত্বের সংখ্যক যোগফলকে গণনা করুন।
  5. প্রতিটি পাথের জন্য, সঞ্চিত দূরত্বের চ্যানডল জীবনকাল পৌঁছানোর আগে ধাপগুলির সংখ্যা
  6. উপরের সর্বাধিক গ্রহণ করুন।

মন্তব্য করা কোড:

E        % Input candle lifespan implicitly. Multiply by 2
H:"      % Do thie twice
  i      %   Input array of x or y coordinates
  Y@     %   All permutations. Gives a matrix, with each permutation in a row
  OwYc   %   Prepend a 0 to each row
  !      %   Transpose
  d|     %   Consecutive differences along each column. Absolute value
]        % End
yy       % Duplicate the two matrices (x and y coordinates of all paths)
Xl       % Take maximum between the two, element-wise
++       % Add twice. This gives twice the pumpkin distance
Ys       % Cumulative sum along each column
>        % True for cumulative sums that exceed twice the candle lifespan
s        % Sum of true values for each column
X>       % Maximum of the resulting row array. Inmplicitly display

এমএটিএল 1000 (x, y) জোড়ার জোড় তৈরি করতে পারে?
edc65

@ এডসি 65 না, এটি খুব বেশি (1000 উপাদানের 10 ^ 2500 এরও বেশি ক্রিয়াকলাপ রয়েছে)। আমি মনে করি না যে কোনও ভাষা পারে
লুইস মেন্ডো

একটি মন্তব্যে, ওপি 1000 টি পর্যন্ত গ্রাম পরিচালনা করার অনুরোধ করে। তবে যে কোনও উত্তর যা সমস্ত ক্রিয়াকলাপ উত্পন্ন করে এবং সঞ্চয় করে তা এমনকি 15 টি গ্রাম (1300 বিলিয়ন ডলার
অনুমান

@ edc65 আহ, আমি দেখছি। সমস্যাটি এনপি-হার্ড হলে 1000 গ্রাম অবাস্তব বলে মনে হচ্ছে, যেমনটি মনে হয়
লুইস মেন্ডো

2

পাইথন 2.7 , 422 বাইট

অতিরিক্ত উন্নতি দেখানোর জন্য NoOneIsHere ধন্যবাদ!

তালিকাটি সংরক্ষণ না করে লক্ষ্য করে পরিবর্তে পুনরাবৃত্তকারী ব্যবহার করার জন্য edc65 ধন্যবাদ!

এটি অনলাইন চেষ্টা করুন!

from itertools import permutations
def d(s,e):
    d=0
    while s!=e:
        x=1 if s[0]<e[0] else -1 if s[0]>e[0] else 0
        y=1 if s[1]<e[1] else -1 if s[1]>e[1] else 0
        s=(s[0]+x,s[1]+y)
        d+=(1,1.5)[x and y]
return d
l,m=4,0
for o in permutations([(1,1),(2,2),(3,3)]):
    a,c=l-d((0,0),o[0]),1
    for j in range(len(o)-1):
        a-=d(o[j],o[j+1])
        c+=(0,1)[a>0]
    m=max(c,m)
print m

ব্যাখ্যা:

ফাংশন প্রদত্ত বিধি অনুসারে দুটি পয়েন্টের মধ্যকার দূরত্ব গণনা করে, লুপটি ইনপুটটির জেনারেটরের দ্বারা উত্পন্ন সমস্ত অনুক্রমের মাধ্যমে পুনরাবৃত্তি করে এবং দূরত্ব গণনা করে, যদি মোমবাতির জীবনকাল থেকে দূরত্ব কম হয় তবে এটি বিয়োগ করে এবং স্থানটি স্থানটি যুক্ত করে কাউন্টার, যদি সেই কাউন্টারটি বর্তমান সর্বাধিকের চেয়ে বেশি হয় তবে এটি তার বিকল্প রাখে।

ungolfed:

from itertools import permutations

def distance(start_pos, end_pos):
    distance = 0
    while start_pos != end_pos:
        mod_x = 1 if start_pos[0] < end_pos[0] else -1 if start_pos[0] > end_pos[0] else 0
        mod_y = 1 if start_pos[1] < end_pos[1] else -1 if start_pos[1] > end_pos[1] else 0
        start_pos = (start_pos[0] + mod_x, start_pos[1] + mod_y)
        distance += (1, 1.5)[mod_x and mod_y]
    return distance

lifespan, max_amount = 4, 0
for item in permutations([(1,1), (2,2), (3,3)]):
    lifespan_local, current = lifespan - distance((0,0), item[0]), 1
    for j in range(len(item) - 1):
        lifespan_local -= distance(item[j], item[j + 1])
        current += (0, 1)[lifespan_local > 0]
    max_amount = max(current, max_amount)
print max_amount

হ্যালো, এবং পিপিসিজিতে আপনাকে স্বাগতম! আপনি করতে পারেন current c, এবং ll m
NoOneIsHere

ওহ ধন্যবাদ! এটি মিস করেছেন
গমডজ্যাকাস

একটি মন্তব্যে, ওপি 1000 টি পর্যন্ত গ্রাম পরিচালনা করার অনুরোধ করে। তবে যে কোনও উত্তর যা সমস্ত ক্রিয়াকলাপ উত্পন্ন করে এবং সঞ্চয় করে তা এমনকি 15 টি গ্রাম (1300 বিলিয়ন ডলার
অনুমান

কিছু সময় এটি সন্ধান করবে, মাথা আপ জন্য ধন্যবাদ। আমি মন্তব্যগুলি সত্যিই পড়িনি কারণ সেগুলির অনেকগুলি রয়েছে।
গমডজ্যাকাস

সম্পন্ন হয়েছে, এখন জেনারেটর ব্যবহার করে, চলতে চলতে সেগুলি যে সমস্ত অনুমতি দেয় সেগুলি সংরক্ষণ করার পরিবর্তে, অনুমতিটির জন্য ও (এন) ব্যবহার করা উচিত।
গমডজ্যাকাস

1

পিএইচপি, 309 বাইট

function j($x,$y,$c,$v){if($s=array_search([$x,$y],$v))unset($v[$s]);for($c--,$i=4;$c>0&&$i--;)$m=($n=j($x+[1,0,-1,0][$i],$y+[0,1,0,-1][$i],$c,$v))>$m?$n:$m;for($c-=.5,$i=4;$c>0&&$i--;)$m=($n=j($x+[1,-1,-1,1][$i],$y+[1,1,-1,-1][$i],$c,$v))>$m?$n:$m;return$s?++$m:$m;}echo j(0,0,$argv[1],array_chunk($argv,2));

একেবারে নিষ্ঠুর শক্তি এবং খুব ছোটও নয়। ব্যবহার করুন:

php -r "function j($x,$y,$c,$v){if($s=array_search([$x,$y],$v))unset($v[$s]);for($c--,$i=4;$c>0&&$i--;)$m=($n=j($x+[1,0,-1,0][$i],$y+[0,1,0,-1][$i],$c,$v))>$m?$n:$m;for($c-=.5,$i=4;$c>0&&$i--;)$m=($n=j($x+[1,-1,-1,1][$i],$y+[1,1,-1,-1][$i],$c,$v))>$m?$n:$m;return$s?++$m:$m;}echo j(0,0,$argv[1],array_chunk($argv,2));" 5 1 1 2 1 3 1 4 1 5 0 5 1

আরও একটি সাদা জায়গা এবং একটি ফাইলে সংরক্ষণ করা:

<?php 
function j( $x, $y, $c, $v)
{
    if( $s = array_search( [$x,$y], $v ) )
        unset( $v[$s] );

    for( $c--, $i=4; $c>0 && $i--;)
        $m = ( $n=j($x+[1,0,-1,0][$i],$y+[0,1,0,-1][$i],$c,$v) )>$m ? $n : $m;

    for( $c-=.5, $i=4; $c>0 && $i--;)
        $m = ( $n=j($x+[1,-1,-1,1][$i],$y+[1,1,-1,-1][$i],$c,$v) )>$m ? $n : $m;

    return $s ? ++$m : $m;
}
echo j( 0, 0, $argv[1], array_chunk($argv,2) );

1

পাইথন, 175 বাইট

def f(c,l):
 def r(t):p=abs(t[0]-x);q=abs(t[1]-y);return p+q-.5*min(p,q)
 v=0;x,y=0,0
 while c>0 and len(l)>0:
  l.sort(key=r);c-=r(l[0]);x,y=l.pop(0)
  if c>=0:v+=1
 return v

cমোমবাতির জীবনকাল, এটি lটিপলগুলির একটি তালিকা - গ্রাম স্থানাঙ্ক, vপরিদর্শনকৃত গ্রামের সংখ্যা, (x,y)বর্তমানে জ্যাকের মধ্যে থাকা গ্রামের সমন্বয়কের যুগল।

r(t)একটি ফাংশন যা বর্তমান অবস্থানের দূরত্ব গণনা করে এবং তালিকাটি সাজানোর জন্য ব্যবহৃত হয় যাতে নিকটতম হয় l[0]। ব্যবহৃত সূত্রটি | Δx | + | |y | - মিনিট (| Δx |, | |y |) / 2।

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


1

কোলাহল

(define (dist x1 y1 x2 y2)     ; fn to find distance between 2 pts
  (sqrt(+ (expt(- x2 x1)2)
          (expt(- y2 y1)2))))

(define (fu x1 y1 x2 y2)       ; find fuel used to move from x1 y1 to x2 y2;
  (let loop ((x1 x1)
             (y1 y1)
             (fuelUsed 0))
    (let* ((d1 (dist (add1 x1) y1 x2 y2))        ; horizontal movement
           (d2 (dist x1 (add1 y1) x2 y2))        ; vertical movement
           (d3 (dist (add1 x1) (add1 y1) x2 y2)) ; diagonal movement
           (m (min d1 d2 d3))) ; find which of above leads to min remaining distance; 
      (cond 
        [(or (= d2 0)(= d1 0)) (add1 fuelUsed)]
        [(= d3 0) (+ 1.5 fuelUsed)]
        [(= m d1) (loop (add1 x1) y1 (add1 fuelUsed))]
        [(= m d2) (loop x1 (add1 y1) (add1 fuelUsed))]
        [(= m d3) (loop (add1 x1) (add1 y1) (+ 1.5 fuelUsed))]))))

(define (f a l)
  (define u (for/list ((i l))
    (fu 0 0 (list-ref i 0) (list-ref i 1))))  ; find fuel used for each point; 
  (for/last ((i u)(n (in-naturals)) #:final (>= i a))
    n))

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

(f 4 '((1 1) (2 2) (3 3))) ;-> 2
(f 5 '((1 1) (2 1) (3 1) (4 1) (5 0) (5 1))) ;-> 4

আউটপুট:

2
4

তবে উপরের কোডটি x এবং y এর নেতিবাচক মানের জন্য কাজ করে না।

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