তীরগুলি পরিবর্তনক!


29

চ্যালেঞ্জ

রবিন একটি তীরের আকারে তার ভেরিয়েবল ঘোষণার পছন্দ করে। তিনি এখানে এটি কীভাবে করেছেন:

  • যে কোনও সংখ্যক স্ট্রিং ইনপুট করুন
  • আরোহণ দৈর্ঘ্য দ্বারা তাদের অর্ডার
  • এগুলি মোটামুটি একটি নেতিবাচক তীরচিহ্ন তৈরি করার জন্য মধ্যম দ্বারা অর্ডার করে আউটপুট দেয় (এর মধ্যে যে কোনও আদেশই সেরা গল্ফ করে):

    5  or  4
    3      2
    1      1
    2      3
    4      5
    

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

ইনপুট:

bow
arrows
sheriffOfNottingham
kingRichard
maidMarian
princeJohn
sherwoodForest

আউটপুট:

sheriffOfNottingham
kingRichard
maidMarian
bow
arrows
princeJohn
sherwoodForest

ইনপুট:

a
bb
cc

আউটপুট (উভয়ই বৈধ):

bb
a
cc

cc
a
bb

ইনপুট:

one
four
seven
fifteen

সম্ভাব্য আউটপুট (কেবলমাত্র অন্যান্য বৈধ আউটপুটটি এটির উল্লম্ব আয়না):

seven
one
four
fifteen

নোট

  • স্ট্রিংটি উটকেসে রয়েছে এবং এর কোনও সংখ্যা বা বিশেষ অক্ষর নেই, কেবল ছোট হাতের অক্ষর এবং বড় হাতের অক্ষর।

  • ইনপুটটি আপনার পছন্দের যে কোনও কিছু হতে পারে: একটি স্ট্রিং, অ্যারে হিসাবে কমা-বিচ্ছিন্ন ... কোনও আই / ও ফর্ম্যাট অনুমোদিত।

  • একই দৈর্ঘ্যের স্ট্রিংয়ের মধ্যে, যে কোনও অর্ডার গ্রহণ করা হয়।

আমার মনে হচ্ছে এর আগেও অনেকটা অনুরূপ চ্যালেঞ্জ ছিল ... তবে পিপিসিজিতে আপনাকে স্বাগতম!
জিউসেপ

@ জিউসেপ হ্যাঁ পোস্ট করার পরে আমি যা ভেবেছিলাম, এর আগে আর কোনও উপায় হয় নি। আপনি এখনই উত্তরটি দিয়েছেন তা কি মুছে ফেলার ব্যাপারে আপনি ঠিক আছেন?
ছাগল

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

1
ঠিক আছে, আমরা সকলেই শুরু থেকে শুরু করি :-)
জিউসেপ

1
এমনকি আপনি এমনকি সংখ্যক স্ট্রিং দিয়ে একটি পরীক্ষার কেস যুক্ত করতে পারেন?
শার্লক 9

উত্তর:


15

পাইথন 2 , 47 বাইট

lambda l:l.sort(key=len)or l[1::2][::-1]+l[::2]

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


আপনার কিছু জিনিস পুনরায় সাজানো দরকার, তবে আপনি [::-2]সরাসরি 5 বাইট সংরক্ষণ করতে পারেন ।
শার্লক 9

@ শার্লক ৯ আমি এটি চেষ্টা করেছি, তবে তারপরে আমাকে দৈর্ঘ্যটি পরীক্ষা করতে হয়েছিল, কেননা সম / অসম দৈর্ঘ্যের তালিকাগুলি আলাদাভাবে পরিচালনা করতে হয়।
ovs

পাইথন ৩ এর জন্যও কাজ করে 3. "ল্যাম্বডা এল:" এবং "বা" মুছে ফেলা এবং 11 টি বাইট সংরক্ষণের জন্য এটি 2 লাইনে তৈরি করা এখনও "যে কোনও আই / ও ফর্ম্যাট অনুমোদিত?" হিসাবে গ্রহণযোগ্য?
আলু

9

আর , 63 48 বাইট

function(L)c(rev(o<-L[order(nchar(L))]),o)[!0:1]

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

স্ট্রিং দৈর্ঘ্য অনুসারে বাছাই করুন, তারপরে সাজানো তালিকার সাথে বিপরীত তালিকাটি একত্রিত করুন, শেষ পর্যন্ত, 1-ভিত্তিক সূচক 1 থেকে শুরু করে প্রতি 2 তম উপাদানটি নিন।


1
o<-L[...'তীর ভেরিয়েবল' এর অন্য উপায়। কিছুটা কম গুরুত্বপূর্ণ, pryr::f(...)46 এর জন্য এখানে কাজ করে online অনলাইনে চেষ্টা করুন!
অপরাধমূলকভাবে

@ ক্রিমিনালি ভ্যালগার অতিরিক্ত লাইব্রেরি ব্যবহার করে এটিকে পৃথক ভাষায় রূপান্তরিত করে, R + pryrএজন্য সংখ্যার তত্ত্বের প্রশ্নগুলির মতো উপযুক্ত কারণ না থাকলে আমি সাধারণত এটি করা এড়াতে numbersঅনিবার্য।
জিউসেপ

7

জাভাস্ক্রিপ্ট 77 বাইট

স্ট্রিংগুলির অ্যারের হিসাবে ইনপুট নেয়, একটি তীর অনুসারে বাছাই করা অ্যারের আউটপুট দেয়।

s=>s.sort((a,b)=>a.length-b.length).reduce((m,x,i)=>i%2?[...m,x]:[x,...m],[])

ব্যাখ্যা

s =>                                 // take input as an array of strings s
  s.sort((a,b)=>a.length-b.length)   // sort input by string length
  .reduce(                           // reduce
    (m,x,i)=>i%2?[...m,x]:[x,...m],  // if index is even, stick string x at the end of the memo
                                     // array, else at the beginning
    []                               // memo initialized to empty array
  )

1
আমি মনে করি না আপনি গণনা করতে হবে f=77
ডানা

আমি যা দেখেছি তা থেকে জেএস কোড গল্ফ জমা দেওয়ার ক্ষেত্রে এটি বেমানান। আমি এটি গণনা না করে বাদ দিয়ে খুশি।
16

2
আমি মনে করি এটি আপনার ফাংশনটি পুনরাবৃত্তি ব্যবহার করে কিনা তা নির্ভর করে। অর্থাত f=x=>x?f(x-1)। যদি fতা হয় তবে আপনার এটি অন্তর্ভুক্ত করা দরকার যেহেতু আপনি এটিকে আপনার ফাংশনে কল করছেন। তবে, যেহেতু আপনি পুনরাবৃত্তি ব্যবহার করছেন না, তাই আপনাকে অন্তর্ভুক্ত করা উচিত নয় f। মেটাতে বেশ কয়েকটি পোস্ট রয়েছে, এটি এটিকে আরও ভালভাবে ব্যাখ্যা করবে বলে মনে হচ্ছে। কোডগল্ফ.মেটা.স্ট্যাকেক্সেঞ্জাওএ / এ
দানা

এটি আমার দেখা অসঙ্গতিগুলি ব্যাখ্যা করবে।
asgallant


5

কে (ওকে) , 24 বাইট

সমাধান:

x(<#:'x)(|&~w),&w:2!!#x:

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

ব্যাখ্যা:

6 4 2 0 1 3 5অনুক্রমটি তৈরি করুন, ইনপেক্সের আরোহিত দৈর্ঘ্যের মধ্যে সূচিতে এটি ব্যবহার করুন এবং এটি মূল অ্যারেতে সূচীতে ব্যবহার করুন:

x(<#:'x)(|&~w),&w:2!!#x: / the solution
                      x: / save input as x
                     #   / count (#) of x
                    !    / range 0 to ...
                  2!     / modulo 2
                w:       / save as w
               &         / indices where true
              ,          / join with
        (    )           / do this together
           ~w            / not (~) w
          &              / indices where true
         |               / reverse
 (     )                 / do this together
   #:'x                  / count (#:) of each (') x
  <                      / indices to sort ascending
x                        / index into x

5

জেলি , 9 8 বাইট

LÞŒœm"-Ẏ

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

LÞŒœṚ;¥/

এছাড়াও 8 বাইট হয়।

বাইট বাঁচানোর জন্য উভয়ই গল্ফ সরবরাহের জন্য @ এরিকথিউটগলফার এবং @ জোনাথান অ্যালানকে ধন্যবাদ জানাই।


নিস! চতুর গল্ফ: Ṛ€1¦হতে পারে m"-
এরিক আউটগল্ফার

অথবা আপনি যেতে পারেনLÞŒœṚ;¥/
জোনাথন অ্যালান


5

05 এ বি 1 ই , 6 5 বাইট

কেভিন ক্রুইজসেনকে ধন্যবাদ 1 বাইট সংরক্ষিত

আই / ও স্ট্রিংগুলির একটি তালিকা।
সহজ পরীক্ষার জন্য লিঙ্কটি নতুন লাইনের দ্বারা পৃথক I / O এর জন্য সংশোধিত করা হয়েছে।

éι`Rì

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

ব্যাখ্যা

é       # sort by length ascending
 ι      # uninterleave into 2 parts, both sorted ascending
   `    # push the 2 parts separately to the stack
    R   # reverse the second part
     ì  # and append it to the first

আপনিই প্রথম অপসারণ করতে পারেন Rএবং প্রতিস্থাপন «সঙ্গে i, একটি বাইট সংরক্ষণ করতে যেহেতু তৃতীয় বুলেট পয়েন্ট নিয়ম uninterleaving উভয় সংস্করণের পারেন।
কেভিন ক্রুইজসেন

@ কেভিন ক্রুজসেন: ওহ হ্যাঁ, ধন্যবাদ!
এমিগানা

5

জে , 11 বাইট

,~`,/@\:#&>

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

আমরা প্রথমে এটি বাছাই।

তারপরে আমরা ডান থেকে বামে তালিকা ফর্মটি হ্রাস করব, তবে নতুন উপাদানটি কোন দিকে রাখব তা পরিবর্তিত করে। সম্পন্ন.


খুব সুন্দর! যদিও আপনার শেষে একটি জায়গা আছে, এটি 11 বাইটের জন্য সরিয়ে ফেলুন :)
গ্যালেন ইভানভ

1
ধন্যবাদ গ্যালেন সংশোধন করা হয়েছে!
জোনা

4

পাওয়ারশেল , 66 বাইট

1..($a=$args|sort l*).count|?{$_%2}|%{$a[-$_];$x=,$a[-++$_]+$x};$x

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

স্প্ল্যাটিংয়ের মাধ্যমে ইনপুট নেয়, যা টিআইও-তে পৃথক কমান্ড-লাইন আর্গুমেন্ট হিসাবে উদ্ভাসিত হয়। sortউপর গুলি length, দোকানে যে মধ্যে $a, এবং থেকে একটি সীমার নির্মান 1পর্যন্ত countইনপুট স্ট্রিং। তারপরে আমরা কেবলমাত্র বিজোড়গুলি টানতে পারি ?{$_%2}এবং এগুলিকে একটি লুপে ফিড করি |%{...}। প্রতিটি পুনরাবৃত্তি, আমরা "সর্বশেষ", তারপরে "শেষ থেকে তৃতীয়" এবং এর সাথে পাইপলাইনে রাখি $a[-$_]। আলাদাভাবে, আমরা মধ্যে জমা $xইত্যাদি "সর্বশেষ দ্বিতীয়", "গত চতুর্থ", আউট লুপ ও পাইপলাইন রাঙা হয় (তাই যারা উপাদান আউটপুট হয়) এবং তারপর আমরা আউটপুট $x। উভয় ক্ষেত্রে, ডিফল্ট আউটপুট আমাদের স্বয়ংক্রিয়ভাবে আইটেমগুলির মধ্যে নতুন লাইন দেয়।


4

পিএইচপি ,144 141 বাইট

function($a){usort($a,function($b,$c){return strlen($b)-strlen($c);});$e=[];foreach($a as$d)(array_.[unshift,push][++$i%2])($e,$d);return$e;}

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

@ ইসমাইল মিগুয়েল -3 বাইট ধন্যবাদ !


সুন্দর. আমি কোথায় আরও পড়তে পারি [array_unshift,array_push][++$i%2]($e,$d)?
abhig10

2
@ অভিগ 10 নিশ্চিত এটি দুটি ফাংশনের নামের ['array_push','array_unshift']সাথে একটি অ্যারের সাথে অ্যারের [++$i%2]সূচক হিসাবে এক 0বা 1একের মধ্যে পরিবর্তিত হয় প্রতিবার অন্য ফাংশনের মূল্যায়ন করবে। পিএইচপি-র "ভেরিয়েবল ফাংশন" আপনাকে কোনও ফাংশনে ভেরিয়েবল বরাদ্দ করতে দেয় এবং প্রথম বন্ধনী (যেমন: $f='array_push'; $f($e,$d);== array_push($e,$d)) দিয়ে কল করে এক্সিকিউট ($e,$d)করতে দেয় সুতরাং অ্যারের মূল্যায়িত উপাদানটি কল করে। করার জন্য একটি ছোট উপায় if (++$i%2) array_push($e,$d); else array_unshift($e,$e);। অনুমান করুন যে কিছু পরে পিএইচপি সিনট্যাকটিক চিনি ছিল!
640 কেবি

ঠিক আছে, এটি বুঝতে আমার কিছুটা সময় লেগেছিল। অসাধারণ.
abhig10

1
আপনি প্রতিস্থাপন 3 বাইট সংরক্ষণ করতে পারবেন [array_unshift,array_push][++$i%2]($e,$d)সঙ্গে (array_.[unshift,push][++$i%2])($e,$d)। আমি যা করেছি তা হ'ল পুনরাবৃত্তিটি মুছে ফেলা array_, একত্রিত করে এবং তারপরে ফলাফলটি কলটিতে পৌঁছে দেওয়া হয়।
ইসমাইল মিগুয়েল

1
@ ইসমাইল মিগুয়েল এটি উজ্জ্বল ধন্যবাদ!
640 কেবি

4

ম্যাটল্যাব, 87 বাইট

function f(y);[B,I]=sort(cellfun(@(x)length(x),y));{y{flip(I(1:2:end))},y{I(2:2:end)}}'

সেল স্ট্রিংয়ের অ্যারের হিসাবে ইনপুট নেয়, স্ট্রিংগুলির কলাম আউটপুট দেয় (নিশ্চিত না যে এটি আইনী কিনা)

> s = {'qweq qwe qw','qweqw','12132132131231231','asdasdasda','qwe','w'};
> f(s)
> >> 
> ans =
> 
>   6×1 cell array
> 
>     {'qweq qwe qw'      }
>     {'qweqw'            }
>     {'qwe'              }
>     {'1234'             }
>     {'asdasdasda'       }
>     {'12132132131231231'}

পিএস: বিজোড় দৈর্ঘ্যের ইনপুট সহ একটি বাগের দিকে ইশারা করার জন্য ধন্যবাদ স্যাঞ্চাইজস


এটি বিজোড় সংখ্যক ইনপুট স্ট্রিংগুলিতে ব্যর্থ হয়, উদাহরণস্বরূপf({'loooooooong','medium','short'})
সান্চাইজস

কিছু সাধারণ গল্ফিং টিপস: এটি endএকটি এর জন্য optionচ্ছিক function। ব্যবহার function x=f(y);x={...}'তুলনায় খাটো function f(y);disp({...}')
4:49

যদি আপনি আটকে থাকেন তবে আমি এটি কীভাবে করব তা এখানে।
Sanchises

@ সংগাইজস বাগটি নির্দেশ করার জন্য ধন্যবাদ। আপনি ঠিক যেমন ঠিক করেছিলেন ঠিক তেমনই ঠিক করেছি। আমার সমস্যাটি dispহ'ল আউটপুট বিধিগুলি কী তা আমি নিশ্চিত নই। এটি কি খাঁটি পাঠ্য হওয়া উচিত? বা disp({...})ঠিক আছে বা ঠিক x={...}যেমনটি আপনার পরামর্শ অনুসারে রয়েছে
আআআআআআআআআআআআআআআআআআআআআআআআ

1
এটি অকটাভেতে 58 বাইট হতে পারে ।
জিউসেপে

3

এপিএল (ডায়ালগ ইউনিকোড) , 18 বাইট এসবিসিএস

{⍵[⍋-@(2∘|)⍋⍋≢¨⍵]}

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

@ জিএনএইজে বাগ সংশোধন করা হয়েছে।

ব্যাখ্যা:

{⍵[⍋-@(2∘|)⍋⍋≢¨⍵]}
{                }  Function. Takes a single argument: ⍵, list of strings
             ≢¨⍵    The length of each element in the list
           ⍋⍋       Sort the lengths
    -@(2∘|)         At (@) elements divisible by 2 (|), negate (-)
                        gives -1 2 -3 4 -5
                   Sort this list again, gives the indices of that list ^ sorted
 ⍵[             ]   Use these indices to index into the argument

¹


1
≢¨×¯1*⍳∘⍴-> (⊢∘-\≢¨)এবং এটি যদি আপনি এটি একটি dfn পরিণত এমনকি খাটো পায়
ngn

1
তবে, আমি নিশ্চিত নই যে এই অ্যালগরিদমটি সঠিক। আমাদের প্রতিটি স্ট্রিংয়ের দৈর্ঘ্যকে তাদের বাছাই করা ক্রমানুসারে অস্বীকার করা উচিত, ইনপুট থেকে যে ক্রম আসে তা নয়
এনজিএন

2

এপিএল + উইন, 31 38 বাইট

অ্যাডামসের মন্তব্য দেখুন

⊃n[(⍳⍴n)~a],⌽n[a←2×⍳⌊.5×⍴n←n[⍒∊⍴¨n←⎕]]

ডায়ালগ ক্লাসিকের অনলাইন সৌজন্যে এটি ব্যবহার করে দেখুন!

স্ট্রিংগুলির নেস্টেড ভেক্টরের জন্য অনুরোধ জানানো হয়


এপিএল + এর পরিবর্তে মোনাডিকের " টেলি " নেই ∊⍴?
অ্যাডাম

1
ব্যর্থ হয় '12' '1234' '1234' '1234' '1234' '12345678' '12345678' '12345678' '12345678'। স্পষ্টতই, ফলাফলটি হওয়া উচিত ছিল'12345678' '12345678' '1234' '1234' '12' '1234' '1234' '12345678' '12345678'
অ্যাডাম

@ অ্যাডম আমার প্রাচীন সংস্করণ এপিএল + এর ≢ নেই ≢ আপনার দ্বিতীয় মন্তব্যে সম্মত আমি আগামীকাল এটি একবার দেখে নেব।
গ্রাহাম

2

রেটিনা , 26 বাইট

N$`
$.&
*\,2,^A`.+
,2,G`.+

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

N$`
$.&

দৈর্ঘ্যের আরোহী ক্রমে রেখাগুলি সাজান (লাইনের দৈর্ঘ্য $.&ফেরত দেয়)।

*\,2,^A`.+

অস্থায়ীভাবে বিকল্প লাইনগুলি মুছুন এবং বিপরীত ক্রমে অবশিষ্ট রেখাগুলি আউটপুট করুন।

,2,G`.+

কেবলমাত্র লাইনগুলি অস্থায়ীভাবে মুছে ফেলা এবং সেগুলি আউটপুট রাখুন।


2

গাইয়া , 10 বাইট

el∫v:v+2%ụ

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

e		| eval as Gaia code (list of strings)
 l∫		| ∫ort by lengths (ascending)
   v:v		| reverse, dup, reverse
      +		| concatenate lists
       2%	| take every other element
         ụ	| join by newlines and output

4
আমি পছন্দ করি যে মোড়কযুক্ত কোডে আপনার মন্তব্যগুলি স্ট্রিংয়ের একটি তীর তৈরি করেছে
আআআআআ বলেছে মনিকা

2

জাপট, 8 বাইট

ñÊó g0_w

-৩ বাইট শ্যাগিকে ধন্যবাদ!

চেষ্টা করে দেখুন


2 ডি-অ্যারে হিসাবে আউটপুট সহ 10 বাইট , যা অনুমোদিত বলে মনে হচ্ছে।
শেগি

বা, হতে পারে, 8 বাইট ? আমার ফোনে তাই এটি সঠিকভাবে পরীক্ষা করা হয়নি।
শেগি

@ শেগি আমি প্রতিটি নবম উপাদান সন্ধানের জন্য একটি ফাংশন সন্ধান করছিলাম, কিন্তু আমি এটি খুঁজে পেলাম না। ধন্যবাদ!
অবজ্ঞানের

এছাড়াও আছে A.ë()তবে আমি জানি না যে এটি একটি সংক্ষিপ্ত সমাধানের দিকে নিয়ে যাবে কিনা।
শেগি




1

জাভাস্ক্রিপ্ট 95 বাইট

s=>s.sort((x,y)=>x.length-y.length).reduce((a,e,i)=>{i%2?a.push(e):a.unshift(e);return a;},[]);

-1 s.sort()স্ট্রিং দৈর্ঘ্যের দ্বারা নয়, স্ট্রিকসকে লেক্সিকোগ্রাফিকভাবে বাছাই করে।
19

ডান, (x, y) => x. দৈর্ঘ্য-y. দৈর্ঘ্য, এটি ঠিক করা উচিত।
সোমসম



1

সি (জিসিসি) , 136 128 বাইট

S(a,b)int**a,**b;{a=strlen(*b)-strlen(*a);}f(l,s,o,i,b,e)int**s,**o;{qsort(s,l,8,S);e=l-1;for(i=b=0;i-l;)o[i++%2?b++:e--]=s[i];}

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

-8 বাইট সিলিংক্যাট ধন্যবাদ।

ফাংশন fহল সমাধান। এটি স্ট্রিংয়ের সংখ্যা, স্ট্রিংগুলি নিজের এবং আউটপুট বাফারটিকে আর্গুমেন্ট হিসাবে গ্রহণ করে (আরও অভ্যন্তরীণভাবে আরও চারটি ব্যবহৃত হয়) takes


কেন ./.bin.tioআউটপুট ?
ছাগল

@ টেলপোর্টিংগোট সম্ভবত কারণ তাদের পাদচরণকারী সমস্ত ব্যবহার করছে argvযার মধ্যে ফাইলের নাম রয়েছে
জো কিং

ঠিক ঠিক, এটি কেবল একটি দ্রুত পরীক্ষা ছিল। উপযুক্ত ফর্ম্যাট লাগে এমন কোনও ডেটা তৈরি করতে পারেন। আমি টিআইও লিঙ্কটি পরে আপডেট করব।
লাম্বদাবেতা

হাহা, এই সংক্ষিপ্ত পরিবর্তনশীল নামগুলির সাথে সমস্যা: আপনি tযা প্রথম টুপিটি ভুলে গেছেন তা ভুলে যান এবং আপনার প্রয়োজন না হলেও এটিকে চারপাশে রাখুন!
লাম্বদাবেতা


0

জাপট , 8 বাইট

লাইনের অ্যারে হিসাবে ইনপুট, 2 টি রেখার অ্যারে হিসাবে আউটপুট, তালিকার প্রতিটি অর্ধেকের জন্য একটি।

ñÊó
hUÎÔ

এটি ব্যবহার করে দেখুন (নতুন লাইন পৃথক স্ট্রিং হিসাবে I / O এর জন্য অনুমোদিত কোডের অতিরিক্ত কোড)

ñÊó      :Implicit input of array U
ñ        :Sort by
 Ê       :  Length
  ó      :Uninterleave

hUÎÔ     :Newline reassigns to U
h        :Set the first element in U to
 UÎ      :  The first element in U
   Ô     :  Reversed

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