সূচী চা-চ স্লাইড


12

পরিচিতি:

যদিও আমার মুলত আমার মাথায় একটি ডাচ গান ছিল, যেখানে এই গানের কথাগুলি রয়েছে: " দো 'এন স্টপজে নার ভোরেন, এন' স্টেপজি টেরুগ (" এটি "কিছুটা এগিয়ে যেতে এবং কিছুটা পিছনে পিছনে " অনুবাদ করা হয়েছে)) আমি পুরো গানের জন্য অনুসন্ধান করেছি, আমি বুঝতে পেরেছিলাম যে এগুলি কেবল পিছনে ছিল এবং কখনও কখনও পাশের দিকে যায় নি।

সুতরাং, পরিবর্তে আমি এখন এই চ্যালেঞ্জের জন্য মিস্টার সি দ্য স্লাইড ম্যান ওরফে ডিজে ক্যাস্পার - চ-চা স্লাইডের গান ব্যবহার করি ।

যদি আমরা অন্য সমস্ত কিছু উপেক্ষা করি এবং উল্লিখিত পরিমাণগুলি সহ কেবলমাত্র "বাম", "ডান", "পিছনে" এবং "হপ" (আমি "হপ" গণ্য করেছি) শব্দগুলি দেখি, সম্পূর্ণ গানের নীচে তালিকা থাকবে ( আমি এখানে সংক্ষিপ্তসারগুলি LRBH ব্যবহার করছি):

LBHRLLBHRLBHHRRLLLRLBHHHHRRLLLBHHHHHRLRLRLHRLLBHHLRLBHH

এখানে কোনও আড়ালযোগ্য জাভাস্ক্রিপ্ট কোড-স্নিপেটে (স্থান বাঁচাতে) পুরো গানের লিরিক্স, যেখানে চলনগুলি এবং পরিমাণগুলি অবরুদ্ধ বন্ধনীর সাথে ঘিরে রয়েছে:

চ্যালেঞ্জ:

এখন নিজেই চ্যালেঞ্জ onto আমরা এক, দুই, বা তিন ইনপুট নিতে । এর মধ্যে একটি হল সূচক-পূর্ণসংখ্যার একটি তালিকা (সুতরাং 0-সূচকযুক্তের জন্য অ-নেতিবাচক বা 1-সূচকযুক্তের জন্য ইতিবাচক)। (অন্যান্য ইনপুটগুলি alচ্ছিক এবং চ্যালেঞ্জের নিয়মে ব্যাখ্যা করা হয়েছে))

প্রতিটি পরীক্ষার কেস একটি পজিশনে শুরু হবে {x=0, y=0}
এবার চলগুলির গানের তালিকাটি ব্যবহার করুন এবং ইনপুট-তালিকার প্রদত্ত সূচকে সমস্ত চাল মুছে ফেলুন । তারপরে মুভগুলির উপর 'হাঁটাচলা' করুন (ইনপুট-অ্যারের বৃহত্তম সূচক পর্যন্ত) এবং আপনি যে অবস্থানটি শেষ করবেন তার আউটপুট।

নিম্নরূপ প্যাচসমূহ স্থানাঙ্ক পরিবর্তন করতে হবে:
- R: x+1
- L: x-1
- H: y+1
- B:y-1

চ্যালেঞ্জ নিয়ম:

  • মুভিগুলি-তালিকাটি আপনার পছন্দ মতো কোনওভাবে অ্যাক্সেস করা যায়। †: একটি অতিরিক্ত ইনপুট করা যেতে পারে; আপনি যে ডিস্ক থেকে পড়বেন তা ডিস্কের একটি পৃথক ফাইলে থাকতে পারে; আপনার অ্যাক্সেস করা কোনও শ্রেণি-স্তরের পরিবর্তনশীল হতে পারে be এটা তোলে আকারে থাকতে হবে L, R, Bএবং H, যদিও (ক স্ট্রিং বা চরিত্র-তালিকা / অ্যারে হতে পারে) যাতে আপনি যেমন প্যাচসমূহ-তালিকা সংরক্ষণ করা যাচ্ছে না 1s এবং -1s অথবা পূর্ণসংখ্যার।
  • উপরে বর্ণিত মুভ-তালিকা হার্ড-কোডড এবং সর্বদা একই থাকবে। (এটি আপনার কেনার উত্তরের বাইট-গণনাতে সহায়তা করে যদি এটি কোনও ইনপুট হিসাবে গ্রহণ না করে শ্রেণিকেন্দ্রের ক্ষেত্র হিসাবে রাখাই ভাল is
  • ইনপুট-তালিকা উভয়ই 0-সূচকযুক্ত বা 1-ইনডেক্সড (আপনার অবধি) হতে পারে
  • তালিকার বৃহত্তম সূচকটি বাদ দিয়ে আমরা কেবল 'পদচারণা' করি।
    • ।: আপনাকেও এই শেষ আইটেমটি ইনপুট-অ্যারের শেষ আইটেমের পরিবর্তে পৃথক পূর্ণসংখ্যার ইনপুট হিসাবে গ্রহণ করার অনুমতি দেওয়া হয়েছে।
  • আমরা শেষ হওয়া x এবং y স্থানাঙ্কগুলির আউটপুট যে কোনও যুক্তিসঙ্গত বিন্যাসে হতে পারে (দুটি পৃথক রেখায় STDOUT এ মুদ্রিত দুটি আইটেম সংলগ্ন স্ট্রিং, ইত্যাদি)
  • আপনি ধরে নিতে পারেন ইনপুট-তালিকাটি সর্বনিম্ন থেকে সর্বোচ্চ (বা আপনি যদি পছন্দ করেন তবে সর্বাধিক থেকে নিম্নতম) বাছাই করা হয়, এক্ষেত্রে প্রথম আইটেমটি মুভ-তালিকার প্রাথমিক আকার - যদি পৃথক ইনপুট হিসাবে না নেওয়া হয়)। এবং এটিতে কোনও সদৃশ সূচক থাকবে না।
  • যদি ইনপুট-তালিকার বৃহত্তম সূচকে উপরের চালগুলির তালিকার চেয়ে বড় হয় (55 টি চলন উপরের চাল-তালিকায় রয়েছে), আমরা আবার তালিকার শুরুতে প্রায় গুটিয়ে ফেলি (বৃহত্তম সূচকগুলির উপর নির্ভর করে যতবার প্রয়োজন ততবার ইনপুট)।
  • এর y,xপরিবর্তে আপনাকে আউটপুট দেওয়ার অনুমতি দেওয়া হয়েছে x,yতবে আপনি যদি তা করেন তবে দয়া করে আপনার উত্তরে এটি উল্লেখ করুন।

উদাহরণ:

ইনপুট: [0,4,8,10,13,14,27,34,42,43,44,50,53,56,59,60,64]

এখানে চালগুলি এবং (0-সূচিযুক্ত) সূচকগুলি একে অপরের উপরে:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64
L, B, H, R, L, L, B, H, R, L, B, H, H, R, R, L, L, L, R, L, B, H, H, H, H, R, R, L, L, L, B, H, H, H, H, H, R, L, R, L, R, L, H, R, L, L, B, H, H, L, R, L, B, H, H, L, B, H, R, L, L, B, H, R, L

ইনপুট-তালিকার সূচকগুলি অপসারণ করে আমাদের নীচের চলন-তালিকাগুলি অবশিষ্ট থাকবে:

1, 2, 3, 5, 6, 7, 9,11,12,15,16,17,18,19,20,21,22,23,24,25,26,28,29,30,31,32,33,35,36,37,38,39,40,41,45,46,47,48,49,51,52,54,55,57,58,61,62,63
B, H, R, L, B, H, L, H, H, L, L, L, R, L, B, H, H, H, H, R, R, L, L, B, H, H, H, H, R, L, R, L, R, L, L, B, H, H, L, L, B, H, L, H, R, B, H, R

এখন যদি আমরা অবস্থান থেকে অন্য {0, 0}পদক্ষেপের উপর দিয়ে চলি তবে প্রতিটি পদক্ষেপের পরে আমাদের নিম্নলিখিত নতুন স্থানাঙ্ক থাকবে:

{0,0};B,{0,-1};H,{0,0};R,{1,0};L,{0,0};B,{0,-1};H,{0,0};L,{-1,0};H,{-1,1};H,{-1,2};L,{-2,2};L,{-3,2};L,{-4,2};R,{-3,2};L,{-4,2};B,{-4,1};H,{-4,2};H,{-4,3};H,{-4,3};H,{-4,5};R,{-3,5};R,{-2,5};L,{-3,5};L,{-4,5};B,{-4,4};H,{-4,5};H,{-4,6};H,{-4,7};H,{-4,8};R,{-3,8};L,{-4,8};R,{-3,8};L,{-4,8};R,{-3,8};L,{-4,8};L,{-5,8};B,{-5,7};H,{-5,8};H,{-5,9};L,{-6,9};L,{-7,9};B,{-7,8};H,{-7,9};L,{-8,9};H,{-8,10};R,{-7,10};B,{-7,9};H,{-7,10};R,{-6,10}

সুতরাং চূড়ান্ত আউটপুট হবে: {-6, 10}

সাধারাইওন রুল:

  • এটি , তাই বাইট জেতে সংক্ষিপ্ত উত্তর।
    কোড-গল্ফ ভাষাগুলি আপনাকে নন-কোডগলফিং ভাষার সাথে উত্তর পোস্ট করতে নিরুৎসাহিত করবেন না। 'যে কোনও' প্রোগ্রামিং ভাষার জন্য যতটা সম্ভব সংক্ষিপ্ত উত্তর নিয়ে আসার চেষ্টা করুন।
  • স্ট্যান্ডার্ড নিয়মগুলি আপনার উত্তরের জন্য প্রযোজ্য , সুতরাং আপনাকে সঠিক পরামিতি এবং রিটার্ন-টাইপ, সম্পূর্ণ প্রোগ্রাম সহ STDIN / STDOUT, ফাংশন / পদ্ধতি ব্যবহারের অনুমতি দেওয়া হবে। আপনার কল
  • ডিফল্ট লুফোলগুলি নিষিদ্ধ।
  • যদি সম্ভব হয় তবে আপনার কোডের জন্য একটি পরীক্ষার সাথে একটি লিঙ্ক যুক্ত করুন।
  • এছাড়াও, আপনার উত্তরের জন্য একটি ব্যাখ্যা যুক্ত করা অত্যন্ত প্রস্তাবিত।

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

0-indexed input: [0,4,8,10,13,14,27,34,42,43,44,50,53,56,59,60,64]
1-indexed input: [1,5,9,11,14,15,28,35,43,44,45,51,54,57,60,61,65]
Output: {-6, 10}

0-indexed input: [55]    (Note: There are 55 moves in the unmodified list)
1-indexed input: [56]    (Note: There are 55 moves in the unmodified list)
Output: {-6, 11}

0-indexed input: [0,1,4,5,6,9,10,15,16,17,19,20,27,29,30,37,38,39,41,44,45,46,49,51,52]
1-indexed input: [1,2,5,6,7,10,11,16,17,18,20,21,28,30,31,38,39,40,42,45,46,47,50,52,53]
Output: {10, 16}

0-indexed input: [2,3,7,8,11,12,13,14,18,21,22,23,24,25,26,31,32,33,34,35,36,38,40,42,43,47,48,50,53]
1-indexed input: [3,4,8,9,12,13,14,15,19,22,23,24,25,26,27,32,33,34,35,36,37,39,41,43,44,48,49,51,54]
Output: {-18, -7}

0-indexed input: [0]
1-indexed input: [1]
Output: {0, 0}

0-indexed input: [4,6,7,11,12,13,15,17,20,28,31,36,40,51,59,66,73,74,80,89,92,112,113,114,116,120,122,125,129,134,136,140,145,156,161,162,165,169,171,175,176,178,187,191,200]
1-indexed input: [5,7,8,12,13,14,16,18,21,29,32,37,41,52,60,67,74,75,81,90,93,113,114,115,117,121,123,126,130,135,137,141,146,157,162,163,166,170,172,176,177,179,188,192,201]
Output: {-17, 37}

0-indexed input: [25,50,75,100,125,150,175,200,225,250]
1-indexed input: [26,51,76,101,126,151,176,201,226,251]
Output: {-28, 49}

আমরা কি স্থানাঙ্কগুলি বিপরীত ক্রমে আউটপুট করতে পারি?
শেগি

3
@ শেগি উম্ম, নিশ্চিত, কেন নয়। যতক্ষণ আপনি পরিষ্কারভাবে এটি আপনার উত্তরে উল্লেখ করেছেন।
কেভিন ক্রুইজসেন

@ আর্নল্ড হ্যাঁ, চালগুলি সেগুলি প্রদর্শিত এবং কখনও পরিবর্তন হবে না। আমি সম্ভবত এটি আরও স্পষ্ট করে যদি এটি এখনও পরিষ্কার ছিল না। (এটি আপনার বাইট-কাউন্টের উপকারে যদি একটি হার্ডকোডযুক্ত শ্রেণির স্তরের ক্ষেত্র
হিসাবেও থাকতে পারে why

আউটপুট কি একজোড়া ভাসমান হতে পারে?
জাকব

1
চ্যালেঞ্জের জন্য খুব দেরি হয়ে গেছে, তবে আপনার দুটি পরীক্ষার ক্ষেত্রে 1-ইনডেক্সেড কেসটির ভুল ইনপুট রয়েছে বলে মনে হচ্ছে: ষষ্ঠ জনের একটি অতিরিক্ত 82, এবং তৃতীয় টেস্টকেসে 39 এর পরিবর্তে 29 (বাছাইকরণ ইঙ্গিত দেয় যে আপনি সম্ভবত লক্ষ্য করেছেন) আসলে 28/29 হতে হবে, তবে প্রত্যাশিত আউটপুটটি সেখানে 38/39 ব্যবহার করে)।
সূন্দর - মনিকা

উত্তর:


4

05 এ বি 1 ই , 15 12 বাইট

এরিক দ্য আউটগল্ফারকে ধন্যবাদ 3 বাইট সংরক্ষণ করা

ÝsKèIêRS¢2ôÆ

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

ব্যাখ্যা

Ý                 # push range [0 ... input_int]
 sK               # remove all elements in input_list from this range
   è              # cyclically index into the moves-list with the remaining elements
    Iê            # push the unique chars of the move-list, sorted
      R           # reverse
       S¢         # count the occurrences of each char in "RLHB"
         2ô       # split into 2 parts
           Æ      # reduce each part by subtraction

1
চমৎকার উত্তর! এমনকি জানতেন না Æ। সব প্যাচসমূহ এবং ব্যবহারের গণনা স্মার্ট উপায় Æজন্য পার্থক্য নিরূপণ করা RLএবং BHজোড়া।
কেভিন ক্রুইজসেন

Æচিরকালই আছে, তাই না? আমি এটি অনুমান করব, কারণ এটি সম্পর্কে আমি জানতাম না। আমার মনে হয় যে কমান্ডগুলি "নতুন" বলে মনে হয় সেগুলি শুরু থেকেই বিদ্যমান, তবে আমি কীভাবে তাদেরকে কীভাবে ব্যবহার করব তা কখনই জানতাম না। ওহ, +1
ম্যাজিক অক্টোপাস উরন

@ ম্যাজিক অ্যাক্টোপাস উর্ন: এটি সত্যই চিরকালই রয়েছে;)
এমিগানা

7

রুবি , 98 ... 58 55 বাইট

->a{([*0..a[-1]]-a).sum{|c|-1i**(m[c%55].ord%19)}.rect}

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

ব্যাখ্যা:

মুখ্য কৌশলটি সরল প্রতিনিধিত্ব করার জন্য জটিল সংখ্যা ব্যবহার করছে: 'বি' হ'ল -i, 'এইচ' হ'ল + i, 'এল' হ'ল -1 এবং 'আর' হল +1। যদি আমরা সমস্ত পদক্ষেপকে জটিল সংখ্যায় রূপান্তর করি, তবে একক যোগ দিয়ে আমরা সঠিক ফলাফল পাই।

আমি বিভিন্ন উপায়ে চেষ্টা করেছি, তবে তারপরে আমি 19 নম্বর ম্যাজিকটি পেয়েছি: আমাদেরকে রেজেক্সের সাথে ম্যাচিংয়ের দরকার নেই কারণ:

B  is ASCII 66; 66%19=9  and i^9  = i
H  is ASCII 72; 72%19=15 and i^15 =-i
L  is ASCII 76; 72%19=0  and i^0  = 1
R  is ASCII 82; 82%19=6  and i^6  =-1

সুতরাং, এগুলি একসাথে রাখুন, যোগফল দিন, সাইন ইনভার্ট করুন এবং আমরা সম্পন্ন করেছি।

জ্যাকব -3 বাইট জন্য ধন্যবাদ


জটিল সংখ্যার চালাক ব্যবহার! যেহেতু সরানোর স্ট্রিং স্থির হয়ে গেছে, আপনি এর (m*c+m)[c]সাথে প্রতিস্থাপন করতে পারেন m[c%55]
জাকব

4

জাভাস্ক্রিপ্ট (ES6), 85 বাইট

চ্যালেঞ্জের নিয়ম অনুসারে, এই কোডটি গ্লোবাল-স্কোপ স্ট্রিং মি এর পদক্ষেপগুলির তালিকা ধরে রাখবে বলে প্রত্যাশা করে । (@ কেভিন ক্রুজেনসানের পরামর্শ অনুসারে 3 বাইট সংরক্ষণ করা))

সর্বনিম্ন থেকে সর্বোচ্চে অর্ডার করা 0-ভিত্তিক সূচকগুলির তালিকা হিসাবে ইনপুট নেয়।

a=>a.map(g=i=>j++<i&&g(i,p=m.search(m[~-j%55])*3%5,x+=--p%2,y-=--p%2),j=x=y=0)&&[x,y]

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

কিভাবে?

প্রতিটি সরানো অক্ষর মুভিং স্ট্রিংয়ে তার অবস্থানে রূপান্তরিত হয় "LBHR..."। আমরা ফলাফলটি 3 দ্বারা গুণিত করি এবং একটি মডুলো 5 প্রয়োগ করি , যা পি দেয় । আমাদের তখন রয়েছে:

  • dx = ((পি -১) মোড 2)
  • dy = - ((পি -২) মোড 2)

কোথায় চিহ্ন একটি mod খ এর যে একটি

 character | position | * 3 | mod 5 | dx | dy
-----------+----------+-----+-------+----+----
    'L'    |     0    |  0  |   0   | -1 |  0
    'B'    |     1    |  3  |   3   |  0 | -1
    'H'    |     2    |  6  |   1   |  0 | +1
    'R'    |     3    |  9  |   4   | +1 |  0

3

জেলি , 14 বাইট

Rḟị⁵ċⱮ⁵QṢṚ¤_2/

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

আর্গুমেন্ট 1 / বাম আর্গুমেন্ট: সর্বাধিক 1-ভিত্তিক সূচক।
আর্গুমেন্ট 2 / ডান যুক্তি: 1-ভিত্তিক সূচকগুলি।
আর্গুমেন্ট 3: একটি স্ট্রিং হিসাবে চাল-তালিকা তৃতীয় কমান্ড-লাইন যুক্তি যদি এই উদ্দেশ্যে ব্যবহার করা হয় তবে ফাংশনটি পুনরায় ব্যবহারযোগ্য।


3

জাভা 10, 129 119 112 107 100 86 বাইট

a->m->{var r=new int[2];for(;m-->0;)r[s[m%55]/73]-=a.add(m)?s[m%55]*3%5-2:0;return r;}

অতিরিক্ত ইনপুট হিসাবে সর্বাধিক লাগে; মুভস-লিস্ট ক্লাস-লেভেলের একটি ক্যারেক্টার অ্যারে।

@ এমিগানার 05AB1E উত্তর দ্বারা অনুপ্রাণিত ।
-7 ধন্যবাদ বাইট @Jakob
-14 ধন্যবাদ বাইট @Geobits

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

ব্যাখ্যা:

a->m->{              // Method with Integer-Set & int parameters and int-array return
  var c=new int[2];  //  [x,y] result-array, starting at {0,0}
  for(;m-->0;)       //  Use the `m` input as index, and loop in the range (`m`, 0]
    r[s[m%55]/73]-=  //   Subtract from either x or y based on the character:
     a.add(m)?       //    If the input-set doesn't contain the current index `m`:
      s[m%55]*3%5-2  //     Modify the x or y coordinate based on the character
     :               //    Else:
      0;             //     Leave the x or y coordinate unchanged
  return r;}         //  Return count(R)-count(L) and count(H)-count(B) as result

s[m%55]/73অক্ষরের উপর নির্ভর করে x বা y স্থানাঙ্কের মানচিত্রগুলি ( এটি অনলাইনে চেষ্টা করে দেখুন ):

Letter    Unicode value    /73

B         66               0
H         72               0
L         76               1
R         82               1

s[m%55]*3%5-2চরিত্রটি সঠিক +1বা -1নির্ভর করে মানচিত্রগুলি ( এটি অনলাইনে চেষ্টা করে দেখুন ):

Letter    Unicode value    *3     %5    -2

B         66               198    3     1
H         72               216    1     -1
L         76               228    3     1
R         82               246    1     -1

1
আপনি যদি সূচি তালিকাটিকে পরিবর্তনীয় সেট হিসাবে গ্রহণ করেন তবে আপনি শর্ত a.add(m)হিসাবে ব্যবহার করতে পারেন if
Jakob

এবং int c[]হতে পারে int[]c
জাকব

1
@ জ্যাকব আহ, int c[]পূর্ববর্তী সংস্করণ থেকে এসেছিলেন যেখানে আমি এখনও ব্যবহারের iপরিবর্তে একটি সূচক ব্যবহার করেছি m। এবং addপরিবর্তে একটি সেট এর ব্যবহারের স্মার্ট !contains, ধন্যবাদ!
কেভিন ক্রুইজসেন

1
c[2]অক্ষের জন্য ব্যবহার করে (এর সাথে s[m%55]/73) ব্যবহার করে এবং এ জাতীয় কিছু দিয়ে হাঁটার মাধ্যমে আপনি বাইট-হগিং বিয়োগগুলি এড়াতে পারবেন 3*s[m%55]%5-2(আমি আশা করি আমি এটি ছোট করার কোনও উপায় দেখতে পারতাম তবে ...)। a->m->{var c=new int[2];for(;m-->0;)c[s[m%55]/73]-=a.add(m)?3*s[m%55]%5-2:0;return c[1]+","+c[0];}
টেননারির

@ জিওবিটস ধন্যবাদ! এবং -12 বাইটস কেবল int[]একটি স্ট্রিংয়ের পরিবর্তে ফিরে এসে । :)
কেভিন ক্রুইজসেন

2

পাইথন 3, 85 বাইট

bসূচক তালিকা (ক set) এবং lশেষ সূচক হয়। সরানো তালিকা (একটি স্ট্রিং বা চরিত্রের তালিকা) হিসাবে নিখরচায় প্রদর্শিত হবে s। এই একটি পোর্ট গিগাবাইট এর রুবি উত্তর , এবং পদ্ধতির একটি ব্যাখ্যা আছে পাওয়া যেতে পারে।

def f(b,l):r=sum(-1j**(ord(s[i%55])%19)for i in set(range(l))-b);print(r.real,r.imag)

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

Ungolfed

def f(b, l):
    r = sum(
        -1j ** (ord(s[i % 55]) % 19)
        for i in set(range(l)) - b
    );
    print(r.real, r.imag)


1

পরিষ্কার , 148 ... 130 বাইট

import StdEnv
$i=foldr(\a(x,y)|any((==)a)i=(x,y)=case m.[a rem 55]of'H'=(x,y+1);'B'=(x,y-1);'L'=(x-1,y);_=(x+1,y))(0,0)[0..last i]

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

প্রযোজ্য ক্রিয়াকলাপের $ :: [Int] -> (Int, Int)আগে-চালিত পদক্ষেপগুলি থেকে সরানোর জন্য (সবচেয়ে ছোট থেকে বৃহত্তম পর্যন্ত সাজানো) সূচকের একটি তালিকা নিয়ে ফাংশনটি সংজ্ঞায়িত foldrকরে (0,0)

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