কেবল 0-9 এবং চারটি ক্রিয়াকলাপ সহ একটি সংখ্যা প্রকাশ করুন


14

ব্যাখ্যা

বেফুঞ্জ একটি দ্বি-মাত্রিক প্রোগ্রাম যা স্ট্যাকগুলি ব্যবহার করে ।

এর অর্থ, 5 + 6 করার জন্য আপনি লেখেন 56+, অর্থ:

56+
5    push 5 into stack
 6   push 6 into stack
  +  pop the first two items in the stack and add them up, and push the result into stack

(to those of you who do not know stacks, "push" just means add and "pop" just means take off)

তবে আপনার বুদ্ধিমান হিসাবে লক্ষ্য করেছেন, আমরা 56সরাসরি স্ট্যাকের মধ্যে নম্বরটি চাপতে পারি না ।

এটি করার জন্য, আমাদের 78*পরিবর্তে লিখতে হবে, যা গুণকে বৃদ্ধি করে 7এবং 8পণ্যটিকে স্ট্যাকের মধ্যে ঠেলে দেয়।

বিস্তারিত

ইনপুটটি যে কোনও বিন্যাসে নেওয়া যেতে পারে, এর অর্থ এটি প্রোগ্রামারের বিবেচনার ভিত্তিতে এটি STDIN হতে পারে বা নাও হতে পারে।

ইনপুটটি ইতিবাচক পূর্ণসংখ্যা হবে (অন্তর্ভুক্ত 0বা নেতিবাচক পূর্ণসংখ্যার জন্য কোনও বোনাস নেই )।

আউটপুটটি কেবল এই অক্ষর সমন্বিত একটি স্ট্রিং হবে: 0123456789+-*/(আমি মডুলো ব্যবহার করব না% ))

লক্ষ্যটি হ'ল সংক্ষিপ্ততম স্ট্রিংটি যা উপরে বর্ণিত ফর্ম্যাটটি ব্যবহার করে ইনপুট উপস্থাপন করতে পারে find

উদাহরণস্বরূপ, যদি ইনপুট হয় 123তবে আউটপুটটি হবে 67*99*+। বাম থেকে ডানে আউটপুট মূল্যায়ন করা উচিত।

যদি একাধিক গ্রহণযোগ্য আউটপুট থাকে (উদাহরণস্বরূপ 99*67*+এটি গ্রহণযোগ্যও হয়), যে কোনও একটি মুদ্রণ করা যেতে পারে (তাদের সমস্ত মুদ্রণের জন্য কোনও বোনাস নেই)।

অারোও ব্যাখ্যা

আপনি যদি এখনও বুঝতে না পারেন তবে কীভাবে 67*99*+মূল্যায়ন করে তা 123এখানে বিশদ বিবরণ।

stack    |operation|explanation
          67*99*+
[6]       6         push 6 to stack
[6,7]      7        push 7 to stack
[42]        *       pop two from stack and multiply, then put result to stack
[42,9]       9      push 9 to stack
[42,9,9]      9     push 9 to stack
[42,81]        *    pop two from stack and multiply, then put result to stack
[123]           +   pop two from stack and add, then put result to stack

টি এল; ডিআর

প্রোগ্রামটিকে সংক্ষিপ্ততম স্ট্রিংটি সন্ধান করতে হবে যা উপরে উল্লিখিত বিন্যাসটি ব্যবহার করে ইনপুট (সংখ্যা) উপস্থাপন করতে পারে।

মন্তব্য

এটি একটি চ্যালেঞ্জ, তাই বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী।

দ্ব্যর্থতা নিরসন

-পারেন হতে পারে x-yবা y-xপ্রোগ্রামার এর বিবেচনার ভিত্তিতে। যাইহোক, পছন্দটি অবশ্যই সমাধানের মধ্যে সামঞ্জস্যপূর্ণ হতে হবে। তেমনিভাবে /

নমুনা প্রোগ্রাম

লুয়া, 1862 বাইট ( এটি অনলাইনে চেষ্টা করুন )

যেহেতু আমি লেখক, আমি একেবারেই গল্ফ করব না।

ব্যাখ্যা:

This uses the depth-first search method.

গভীরতা-প্রথম অনুসন্ধান সম্পর্কে আরও: এখানে

কার্যক্রম:

local input = (...) or 81

local function div(a,b)
    if b == 0 then
        return "error"
    end
    local result = a/b
    if result > 0 then
        return math.floor(result)
    else
        return math.ceil(result)
    end
end

local function eval(expr)
    local stack = {}
    for i=1,#expr do
        local c = expr:sub(i,i)
        if c:match('[0-9]') then
            table.insert(stack, tonumber(c))
        else
            local a = table.remove(stack)
            local b = table.remove(stack)
            if a and b then
                if c == '+' then
                    table.insert(stack, a+b)
                elseif c == '-' then
                    table.insert(stack, b-a)
                elseif c == '*' then
                    table.insert(stack, a*b)
                elseif c == '/' then
                    local test = div(b,a)
                    if test == "error" then
                        return -1
                    else
                        table.insert(stack, a+b)
                    end
                end
            else
                return -1
            end
        end
    end
    return table.remove(stack) or -1
end

local samples, temp = {""}, {}

while true do
    temp = {}
    for i=1,#samples do
        local s = samples[i]
        table.insert(temp, s..'0')
        table.insert(temp, s..'1')
        table.insert(temp, s..'2')
        table.insert(temp, s..'3')
        table.insert(temp, s..'4')
        table.insert(temp, s..'5')
        table.insert(temp, s..'6')
        table.insert(temp, s..'7')
        table.insert(temp, s..'8')
        table.insert(temp, s..'9')
        table.insert(temp, s..'+')
        table.insert(temp, s..'-')
        table.insert(temp, s..'*')
        table.insert(temp, s..'/')
    end
    for i=1,#temp do
        if input == eval(temp[i]) then
            print(temp[i])
            return
        end
    end
    samples = temp
end

বোনাস

আপনি কোড লিখতে যদি বেফুঞ্জ (বা এর কোনও রূপ) ব্যবহার করেন তবে আপনার জন্য একটি কেক ।


3
কোনও উত্তর দেওয়া থাকলে সিদ্ধান্ত নেওয়া শক্ত হতে পারে, যদি এটি সর্বদা সর্বাধিক স্ট্রিং তৈরি করে। একটি ধারণা হ'ল 30--50 নম্বর বলে একটি বড় সেট তৈরি করা এবং সমস্ত আউটপুট স্ট্রিং দৈর্ঘ্যের যোগফল দ্বারা স্কোর। যাইহোক, আমি কীভাবে কোড স্কোরের সাথে এই স্কোরটি একত্রিত করব তা নিশ্চিত নই
লুইস মেন্ডো


2
চ্যাট থেকে আমার ধারণাগুলি অনুলিপি করে : "আমি এটি সম্পর্কে ভেবেছিলাম তবে আমি যুক্তি দেব যে উপসেটটি বিষয়গুলিকে অনেক সহজ করে তোলে কারণ 1) কোনও হেক্স, 2) কোনও ফ্লোট নেই, 3) কোনও সদৃশ এবং 4) কেবল ইতিবাচক নয়"
Sp3000

1
পুরানো উত্তরগুলি অবৈধ করার জন্য @ কুলস্ট ভিটও এটির চেয়ে আলাদা।
আর

1
@ কুলিস্টওয়েটো আমি মনে করি যে অন্য চ্যালেঞ্জগুলির এটির সদৃশ হিসাবে বন্ধ করা উচিত।
mbomb007

উত্তর:


4

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

আমার সেরা সমাধান, যা প্রতিটি সময়ই সংক্ষিপ্ত উত্তর দেয়। (তবে খুব ধীর)

def e(c):
 s=[];x,y=s.append,s.pop
 while c:
  d,c=c[0],c[1:]
  if"/"<d<":":x(d)
  else:a,b=y(),y();x(str(eval(b+d+a)))
 return int(y())
def g(v):
 s="0123456789+-*";t=list(s)
 while 1:
  for x in t:
   try:
    if e(x)==v:return x
   except:0
  t=[x+y for x in t for y in s]

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

এই সমাধানটি দীর্ঘ, তবে খুব দ্রুত (জোর দিয়ে নয়)। এবং আমি পুরোপুরি নিশ্চিত, এটি সর্বদা সংক্ষিপ্ততম ফলাফল ফিরে আসে।

r=range;l=len;a=input()
def f(n):
 if n<=9:return str(n)
 for d in r(9,1,-1):
  if n%d==0:return f(n/d)+"%d*"%d
 h=sum(map(int,list(str(n))))%9
 return f(n-h)+"%d+"%h
m={x:f(x) for x in r(a*9)}
for b in m:
 if a-b in m and l(m[b])+l(m[a-b])+1<l(m[a]):m[a]=m[a-b]+m[b]+"+"
 if a+b in m and l(m[b])+l(m[a+b])+1<l(m[a]):m[a]=m[a+b]+m[b]+"-"
 if b!=0 and a%b==0 and a/b in m and l(m[b])+l(m[a/b])+1<l(m[a]):m[a]=m[a/b]+m[b]+"*"
print m[a]

2
পিপিসিজিতে আপনাকে স্বাগতম ! আশা করি আপনার এখানে দুর্দান্ত সময় কাটবে।
লিকি নূনের

1
@ পিপোচিনাক আমার ধারণা আমি একটি বৈধ খুঁজে পেয়েছি। f(6551)আয় 25*8*9*7+9*8+(13 অক্ষর), যখন 9999***52*-(11 অক্ষর) একটি ভাল নেই। evalউপরে আমার নিজস্ব ফাংশন (প্রশ্নে) যাচাই করা হয়েছে ।
লিকি নুন

4
@pbochniak আমার মন্তব্য করার আগে মন্তব্য হিসাবে, এই উত্তরটি বর্তমান অবস্থায় অবৈধ। আপনি কোনও স্থির কাজ করার সময় অস্থায়ীভাবে মুছে ফেলা বাঞ্ছনীয় (যদি কিছুই না হয় তবে এটিকে ডাউনভোটগুলি আকর্ষণ করতে বাধা দিতে)।
ডেনিস

1
আপনার সময় ঠিক হতে পারেwhile c:
ভেন

আপনি ;ভেরিয়েবলগুলিতে অ্যাসাইনমেন্টগুলি পৃথক করতে ব্যবহার করতে পারেন (যা ইনডেন্টড ব্লকগুলিতে বাইটগুলি সংরক্ষণ করে), ভেনের টিপ, একটি প্রতীক এবং অন্য যে কোনও কিছুর মধ্যবর্তী সাদা স্থান থেকে মুক্তি পেতে পারেন এবং tযেতে পারেন।
ক্যালকুলেটরফলাইন

4

পার্ল, 134 133 132 128 বাইট

এর জন্য +5 অন্তর্ভুক্ত -Xlp(2 টি অতিরিক্ত কারণ কোডটিতে রয়েছে ')

এসটিডিনে লক্ষ্য নম্বর নিয়ে চালান:

perl -Xlp befour.pl <<< 123

befour.pl:

@1{1..9}=1..9;$.+=2,map{for$a(%1){"+-*/"=~s%.%"\$1{\$-=$a$&$_/'$1{$a}$1{$_}$&'=~/^.{$.}\$/}||=\$&"%eegr}}%1until$\=$1{$_}}{

এটির কোনও কৃত্রিম সীমা নেই এবং ধারণাগতভাবে কিছুটা দক্ষ কিন্তু তবুও ভয়ঙ্কর রান সময় রয়েছে যদিও আমি এটির গতি বাড়ানোর জন্য কয়েকটি বাইট ত্যাগ করেছি। দৈর্ঘ্যের 11 টি সমাধান (যেমন লক্ষ্য সংখ্যা 6551) তৈরি করা আমার সিস্টেমে প্রায় 5 ঘন্টা সময় নেয়।

আরও 7 টি বাইট ত্যাগের গতি কিছুটা আরও সহনীয় করে তোলে।

@1{1..9}=1..9;$.+=2,map{for$a(@a){"+-*/"=~s%.%"\$1{\$-=$a$&$_/'$1{$a}$1{$_}$&'=~/^.{$.}\$/}||=\$&"%eegr}}@a=keys%1until$\=$1{$_}}{

দৈর্ঘ্যের 11 সমাধানের জন্য 17 মিনিট, দৈর্ঘ্যের 13 সমাধানের জন্য প্রায় 5 ঘন্টা। প্রথম সংখ্যার 15 দৈর্ঘ্যের প্রয়োজন যা 16622 যা প্রায় 2 দিন সময় নেয়। 17 নম্বর দৈর্ঘ্যের প্রয়োজনে প্রথম সংখ্যাটি 73319।

লক্ষ্য করুন যে এটি ধরে নিয়েছে যে বিভাগ 0 এর দিকে কাটা দিয়ে একটি পূর্ণসংখ্যা ফেরত দেয় (befunge 93 স্পেসিফিকেশন অনুযায়ী)


ডলার-চিহ্নগুলি কি করে? (আমি পার্ল মোটেও বলি না)
লিকি নুন

1
@ কেনিলাউ $স্কেলার মানটি অ্যাক্সেস করে। আপনি বেশিরভাগ ভাষায় যেখানে লিখবেন a=4, পার্ল ব্যবহার করবে $a=4। তবে আরও জটিল ভেরিয়েবলগুলির স্কেলার অ্যাক্সেসের জন্যও এটি ব্যবহৃত হয়। উদাহরণস্বরূপ $a{$b}হ্যাশ (মানচিত্র, অভিধান) %aথেকে স্কেলারের মানটি $b
আনছে

2

সি, 550 545 বাইট

#define L strlen
#define y strcpy
#define t strcat
char c[9999][99];i=1,k=3;main(j){for(;i<10;i++)*c[i]=i+'0';for(;k--;){
for(i=1;i<9999;i++)for(j=1;j<=i;j++)*c[i]&&*c[j]&&(i+j>9998||*c[i+j]&&
L(c[i+j])<L(c[i])+L(c[j])+2||t(t(y(c[i+j],c[i]),c[j]),"+"),
i*j>9998||*c[i*j]&&L(c[i*j])<L(c[i])+L(c[j])+2||t(t(y(c[i*j],c[i]),c[j]),"*"));
for(i=9999;--i;)for(j=i;--j;)*c[i]&&*c[j]&&(*c[i/j]&&
L(c[i/j])<L(c[i])+L(c[j])+2||t(t(y(c[i/j],c[i]),c[j]),"/"),
*c[i-j]&&L(c[i-j])<L(c[i])+L(c[j])+2||t(t(y(c[i-j],c[i]),c[j]),"-"));}
scanf("%d",&i);printf("%s",c[i]);}

অপ্রয়োজনীয় নতুনলাইনগুলি মুছে ফেলার পরে 550 545 বাইট (প্রিপ্রসেসিং নির্দেশের পরে তিনটি নতুন লাইন ছাড়া সমস্ত)।

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

প্রোগ্রামটি 9998 এর চেয়ে বেশি সংখ্যক স্ট্যাকের দিকে ধাক্কা দিতে পারে না। (9998 সংশোধন করা যেতে পারে)) যতক্ষণ না কোনও সংখ্যার উন্নতি হয় ততক্ষণ আমি বাইরের লুপের (কে সহ একটি) আবর্তন করে প্রোগ্রামটি অন্য সংস্করণে চালিত করি I 1 এবং 9998 এর মধ্যে (যেমন ডিজকস্ট্রার অ্যালগোরিদম হিসাবে)। তিনটি পুনরাবৃত্তির পরে কোনও উন্নতি হয় না। তাই বাইটস সংরক্ষণ করতে, আমি হার্ড = কোড = 3।

পরিসীমা প্রসারিত করার জন্য, দুটি জিনিস প্রয়োজনীয় - ধীরে ধীরে 9999 এবং 9998 সংশোধন করে, বহির্মুখী লুপের উপরে বহনযোগ্য পুনরাবৃত্তির সাথে এটি চালানো যতক্ষণ উন্নতি হয় ততক্ষণ পর্যন্ত কোনও উন্নতি না হওয়া পর্যন্ত এটি কতক্ষণ সময় নেয় তা দেখার জন্য ধ্রুবক কে = 3 এর মানটি পরিবর্তন করুন।


পিপিসিজিতে আপনাকে স্বাগতম ! আশা করি আপনার এখানে দুর্দান্ত সময় কাটবে।
লিকি নুন

এটি আমার 6551 পরীক্ষাটি পুরোপুরি পাস করে। এই প্রোগ্রামের কার্যকর পরিসরটি কী?
লিকি নুন

আমি বিশ্বাস করি এটি 9999 you আপনি দয়া করে আপনার সমাধানে এই তথ্যটি যুক্ত করতে পারেন?
লিকি নুন

এটা তোলে 9998. এছাড়াও হওয়া উচিত, আপনি আরম্ভের কিছু বাইট খেতে পারেন i, jএবং kসামনে main()
লিকি নুন

1
@ কেনি লাউ - সম্পাদনার জন্য আপনাকে ধন্যবাদ। সীমা প্রসারিত করার বিষয়ে, আমি লক্ষ্য করেছি যে সীমাটি প্রসারিত করতে এটি আরও খানিকটা বেশি সময় নেয়। আমি উত্তরে সেই তথ্য অন্তর্ভুক্ত করেছি।
mIllIbyte

2

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

দাবি অস্বীকার: কিছু মানের জন্য চিরকালের জন্য freaking লাগে ... তবে সর্বদা সংক্ষিপ্ততম স্ট্রিং ফিরিয়ে দেওয়ার গ্যারান্টি দেওয়া উচিত , এবং কোনও কৃত্রিমভাবে চাপানো পরিসীমা সীমা নেই ... এমনকি নেতিবাচক মানগুলিতেও কাজ করে। :)

def f(v):
 i,z=0,'+-*/'
 while 1:
  s=('%x'%i).translate(__import__('string').maketrans('abcd',z),'ef');t=s;q=[];a,p=q.append,q.pop;i+=1
  try:
   while t:
    o,t=t[0],t[1:]
    if o in z:n,m=p(),p();a(eval(`m`+o+`n`))
    else:a(int(o))
   if p()==v and not q:return s
  except:pass

অ্যালগরিদম:

  • শুরু করা i = 0
  • স্ট্রিং এর হেক্স মান প্রতিনিধিত্বমূলক নিন i, এবং প্রতিস্থাপন abcdসঙ্গে +-*/যথাক্রমে, এবং যে কোনো অপসারণef
  • পোস্টফিক্স নোটেশন (আরপিএন) হিসাবে স্ট্রিং প্রক্রিয়া করার চেষ্টা
  • যদি সফল হয় এবং ফলাফল ইনপুট মানের সাথে মেলে তবে ব্যবহৃত স্ট্রিংটি ফিরিয়ে দিন।
  • অন্যথায়, বৃদ্ধি iএবং আবার চেষ্টা করুন।

"[টি] কিছু মূল্যবোধের জন্য চিরকালের জন্য [...]" আপনি কি এটি পরীক্ষা করেছেন? কি মূল্য?
লিকি নুন

@ কেনি লাউ আমি সবেমাত্র একটি পরীক্ষা লিখেছি যা f(i)থেকে 0 <= i <= 6551আপনি গণনা করছেন (আপনি 6551@ পবুকনিয়াকের মূল জমাটি অবৈধ করতে ব্যবহৃত মানটি ক্যাপচার করতে )। এই মুহূর্তে, এটি কয়েক মিনিটের জন্য চলছে, এবং এখানে পরীক্ষাটি থেকে শেষ আউটপুটটি এসেছে: 91 : 49+7* 3.020 s (total 108.174 s, worst 89: 5.827 s) আপডেট - এটি কেবল 92 এর মূল্য দিয়ে শেষ হয়েছে: 92 : 149+7*+ 258.761 s (total 366.935 s, worst 92: 258.761 s)
কেন 'জোয়ে' মোশার

@ কেনি লাউ: টেস্টটি এক ঘন্টারও বেশি সময় ধরে চলছে, এবং কেবলমাত্র মূল্য পর্যন্ত 113... আগ্রহী হলে এখানে সম্পূর্ণ টেস্ট আউটপুট দেখুন (পেস্টবিন) ...
কেন 'জোয়ে' মোশার

2

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

n=input()
L=[[[],""]]
while 1:
 s,c=L.pop(0);L+=[[s+[i],c+`i`]for i in range(10)]+(s[1:]and[[s[:-2]+[eval(`s[-2]`+o+`s[-1]`)],c+o]for o in"/+-*"[s[-1]==0:]])
 if[n]==s[-1:]:print c;E

এত অশ্লীল ধীরে, আমি এটিকে ইনপুটটিতে এক ঘন্টা চালিয়ে রেখেছি 221এবং এটি এখনও শেষ হয়নি termin মন্থরতা একটি বড় চুক্তি হয়, কারণ আমি একটি পানা প্রথম অনুসন্ধানের জন্য একটি সারিতে হিসাবে একটি তালিকা ব্যবহার করছি, এবং .pop(0)হয় O(n)তালিকার জন্য।

L(stack, code to reach stack)জোড়া যুক্ত একটি সারি মাত্র । প্রতিটি পদক্ষেপে, সর্বদা অঙ্কগুলি যুক্ত করা হয় এবং স্ট্যাকটিতে কমপক্ষে দুটি উপাদান থাকে তবে অপারেটরগুলি সম্পাদন করা হয়। শেষ উপাদানটি 0 না হলে কেবল বিভাগটি সঞ্চালিত হয়, যদিও আমার দৃ strong় সন্দেহ আছে যে বিভাগটি কখনই প্রয়োজন হয় না (যদিও আমার এটি প্রমাণ করার কোনও উপায় নেই, তবে আমি এটি পরীক্ষা করে দেখেছি 500)।

NameErrorফলাফল মুদ্রণের পরে প্রোগ্রামটি শেষ হয় (শেষ পর্যন্ত)।


কি ;Eশেষে করছেন?
লিকি নুন

@ কেনিলাউ এটি NameErrorসমাপ্তির জন্য, যেহেতু Eঅন্য কোথাও সংজ্ঞায়িত হয়নি
Sp3000

বাহ, এমন চালাকি।
লিকি নুন

1

সিজেম, 79

ri:M;A,:s:L;{L2m*{s,Y=},{~:A+AS*~!"/+-*">\f{\+}~}%Y2+:Y;_L@+:L;{S*~M=},:R!}gR0=

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

এটি মারাত্মকভাবে অদক্ষ, তবে পর্যাপ্ত স্মৃতি ও সময় দেওয়া, এটি শেষ পর্যন্ত কাজ করে। 163 মেমরির সাথে 123 রান নেই তবে 120 এবং 125 ঠিক আছে।


1

পাইথ - 35 বাইট

পাশবিক বল. একটি অদ্ভুত বিষয় হ'ল নতুন অন্তর্নির্মিত ইনপুটটি আসলে আমার স্কোরকে ব্যথা দেয় কারণ মনে হয় এটি .vপাইথ_এভালের জন্যও কাজ করছে ।

.V1IKfqQ.x.v+jd_T\;N^s+"+-*/"UTbhKB

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


0

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

e,n=enumerate,input()
v=list('0123456789')+[' '*n]*n*2
for i,s in e(v):
 for j,t in e(v):
  for o,k in zip('+*-',(i+j,i*j,i-j)):
   if 9<k<2*n:v[k]=min(v[k],s+t+o,key=len)
print(v[n])

গতি পুরোপুরি অযৌক্তিক নয় (সেকেন্ড বা মিনিটের ক্রমে 123, 221, 1237, 6551 ফিনিস)। ifবিবৃতিটিকে if j<=i and <k<2*nআরও গতিতে পরিবর্তন করা, আরও 9 টি বাইট ব্যয়ে। আমি বিভাগ ছেড়ে দিয়েছি ( /), কারণ এটি কীভাবে প্রয়োজন হবে তা আমি দেখতে পাচ্ছি না।


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