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


21

শিরোনাম প্রশ্নটি বর্ণনা করে।

আমাদের কাছে উপাদানগুলির একটি তালিকা রয়েছে যা আমরা তুলনা করতে পারি (কোনটি সবচেয়ে বড় তা নির্ধারণ করে )। কোনও উপাদান সমান হতে পারে না।

গুরুত্বপূর্ণ দিক:

  1. তুলনা ট্রানজিটিভ নয় (ভাবেন রক পেপার কাঁচি): এটি সত্য হতে পারে: এ> বি, বি> সি, সি> এ (মনে রাখবেন যে এখানে কোনও বৈধ উত্তর নেই বলেই এটি একটি বৈধ ইনপুট নয়, আমি কেবল কী বর্ণনা করছি " অ-ট্রানজিটিভ তুলনা "এর অর্থ)
  2. প্রতিটি ইনপুট অ্যারে একটি উত্তর আছে গ্যারান্টিযুক্ত
  3. সর্বশ্রেষ্ঠ মানে উপাদানটি অবশ্যই প্রতিটি অন্যান্য উপাদানের চেয়ে বড় হতে হবে
  4. রূপান্তরকারী সম্পত্তি হ'ল A> B বোঝায় যে B <A

উদাহরণ:

Input: [A,B,C,D]
A > B, B > C, C > A
D > A, D > B, D > C
Output: D

আমি ও (এন) সময়ে এটি করার কোনও উপায় খুঁজে বের করতে পারি না, আমার সেরা সমাধান হ'ল (এন ^ 2)।

আমি প্রতিটি পদ্ধতির উপর আটকে যাই কারণ একটি উত্তর সম্পর্কে নিশ্চিত হওয়ার জন্য, উপাদানটি প্রতিটি অন্যান্য উপাদানের সাথে সুস্পষ্টভাবে তুলনা করা দরকার, এটি সত্যই উত্তরটি প্রমাণ করার জন্য (কারণ তুলনা ট্রানজিটিভ নয়)।

এটি গাদা, বাছাই ইত্যাদির ব্যবহারকে বাতিল করে দেয়


8
এটি অস্পষ্ট যে "সর্বশ্রেষ্ঠ উপাদান" সংজ্ঞায়িত হবে কীভাবে? উদাহরণস্বরূপ, হলে কোন উপাদানটি সবচেয়ে বেশি ? আপনার তুলনায় অন্য কোন নিয়ম আছে? A>B,B>C,C>একজন
fade2black

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

3
@ fade2black আপনি কেন আমাকে "সর্বশ্রেষ্ঠ" এর অন্য সংজ্ঞাতে সংযুক্ত করছেন? আমি এই প্রশ্নের প্রসঙ্গে সর্বাধিক সংজ্ঞাটি স্পষ্টভাবে বলছি ating সর্বশ্রেষ্ঠ অর্থ, উপাদানটি অন্যান্য উপাদানগুলির চেয়ে বড়। কোনও উপাদান সমান নয়। এটাই তো আছে। এটা কি পরিষ্কার নয়?
জেমস ওয়েয়ারজবা

2
এ, বি, সি, ডি সহ আপনার শেষ উদাহরণটি যদি আপনার ওপিতে অন্তর্ভুক্ত করে থাকে তবে আপনাকে প্রশ্নটি বুঝতে সহায়তা করবে।
fade2black

3
সি # সংকলক দলের একজন সদস্য এটি একটি সাক্ষাত্কারের প্রশ্ন হিসাবে জিজ্ঞাসা করতেন; এটি প্রাসঙ্গিক কারণ সি # তে, ওভারলোড রেজোলিউশন অ্যালগরিদমকে অবশ্যই একটি "বেটারনেস" সম্পর্কযুক্ত সেটটির অনন্য সেরা সদস্য বাছাই করতে হবে যা সাধারণত হয়, তবে অগত্যা ট্রান্সটিভ হয় না। (বা যদি এরকম অনন্য কোনও সেরা সদস্য না থাকে তবে উপযুক্ত প্রতিক্রিয়া জানান; বন্ধনগুলি সম্ভব)) যদিও আমি এটির সঠিক উত্তর দিতে পেরেছি, আমি কখনও ভাবিনি যে এটি একটি বিশেষ সাক্ষাত্কারের প্রশ্ন ছিল কারণ এটি পাওয়ার জন্য "আহা" অন্তর্দৃষ্টি নির্ভর করে লিনিয়ার অ্যালগরিদম
এরিক লিপার্ট

উত্তর:


38

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

পরিষ্কার করার জন্য, "স্ট্যান্ডার্ড অ্যালগরিদম" দ্বারা আমি নিম্নলিখিতটি বোঝাতে চাইছি:

max <- a_1
for i=2 to n
   if a_i > max
      max <- a_i
output max

সম্পূর্ণতার জন্য, আমি মন্তব্যগুলিতে উত্থাপিত বিষয়গুলি এখানে আলোচনা করব। উপরের আলোচনা সেটিং বিরোধী প্রতিসম সম্পর্ক করার জন্য একটি সর্বোচ্চ আপেক্ষিক খুঁজে বের করা হয় , যেখানে একটি আমি সর্বোচ্চ হলে সবার জন্য আমি আমরা আছে একটি আমি > একটি । উপরের অ্যালগরিদম এই ধারণার অধীনে কাজ করে যে সর্বাধিক উপস্থিত রয়েছে, তবে এটি যদি জানা না যায় তবে এটি সর্বাধিকের অস্তিত্ব যাচাই করতে ব্যবহার করতে পারেন (ফিরে আসা উপাদানটি অন্য সমস্ত উপাদানগুলির চেয়ে সত্যই সত্য কিনা তা পরীক্ষা করুন, চি এর মন্তব্যে এটি উল্লেখ করা হয়েছে এবং ইলমারি করোননে উত্তর)।<aijiai>aj

যদি অগত্যা বিরোধী প্রতিসাম্য না হয়, তবে উপরের অ্যালগরিদম ব্যর্থ হয় (এমিল মন্তব্যগুলিতে উল্লিখিত হিসাবে)। যদি < একটি স্বেচ্ছাসেবী সম্পর্ক হয় (যেমন আমরা উভয় ট্রানজিটিভিটি এবং অ্যান্টি প্রতিসাম্যতা শিথিল করছি), তবে লিনিয়ার সময় সর্বাধিক সন্ধান করা সম্ভব নয় তা দেখানো কঠিন নয়। # দ্বারা চিহ্নিত করুন i<<#ai যতবার একটি ক্যোয়ারী অংশগ্রহণ, আমরা একটি উপায়ে একটি adversarial সম্পর্ক যে সর্বোচ্চ যথেষ্ট প্রশ্নের ছাড়া প্রকাশ করা যাবে না নির্ধারণ করুন। ক্যোয়ারী দেওয়া একটি আমি > ? a j , a i > a j উত্তর দিন যদি # a iaiai>?ajai>aj এবং a i < a j অন্যথায়। যদি প্রশ্নের সংখ্যা( এন 2 ) হয় তবে সর্বাধিক এখনও দেখা যায়নি এবং এটি সেটের যে কোনও একটি উপাদান হিসাবে সেট হতে পারে।#ai<n1ai<ajo(n2)


1
@ জেমস ওয়েয়ারজবা (আমার মনে হয়) তিনি কেবল একটি "এড়িয়ে যাওয়া" উপাদানটির অর্থ যা আপনার বর্তমান সর্বোচ্চের চেয়ে বেশি নয় not স্ট্যান্ডার্ড অ্যালগরিদম বিবেচনা করুন: আপনি আপনার তালিকার প্রতিটি মান বর্তমান সর্বাধিকের তুলনায় পরীক্ষা করে দেখুন। আপনি বলেছেন প্রতিটি তালিকার একটি দুর্দান্ত উপাদান রয়েছে। এক পর্যায়ে, আপনি এটি আপনার বর্তমান সর্বাধিকের তুলনায় তুলনা করবেন এবং যেহেতু এটি বৃহত্তর, সেই মানটি আপনার নতুন সর্বাধিক হয়ে উঠবে। এই মান তালিকার সমস্ত কিছুর চেয়ে বৃহত্তর, আপনি কখনই এর চেয়ে বড় কোনও উপাদান খুঁজে পাবেন না এবং আপনার সর্বাধিক মানটি প্রতিস্থাপন করা হবে না। আপনার nতুলনা করার পরে , আপনার বর্তমান সর্বাধিক উত্তর হতে হবে
লর্ড ফারকোয়াড

1
স্বচ্ছতার জন্য সম্পাদিত, এই অ্যালগরিদমটি ট্রানজিটিভিটি ধরে নেয় না। যদি আপনার বিশ্বাস করা শক্ত হয় তবে সঠিকতার প্রমাণের বিশদটি অনুসরণ করুন (প্রত্যাশিত মান সর্বাধিক নয় এবং দ্বিধাটি অনুচ্ছেদে ব্যবহার করুন) এই দ্বন্দ্বের উদ্দেশ্যে ধরে নিন।
এরিয়েল

7
এটি প্রশ্নের 2 অনুমানের উপর নির্ভর করে: অ্যারেতে সর্বদা সর্বাধিক থাকে। যদি এটি না হয় তবে maxকেবলমাত্র সাবহারে সর্বাধিক হতে পারে। তবুও, অনুমান 2 ছাড়াইও, কেউ একটি স্থায়ী সন্ধান করতে পারে এবং তারপরে ও (এন) গণ্ডির মধ্যে একটি দ্বিতীয় স্ক্যান ব্যবহার করে পুরো অ্যারেতে এটি যাচাই করতে পারে।
চি

7
এই উত্তরটি ধরে নিয়েছে যে A>B এবং একই সাথে ধরে রাখতে পারে না। আমি যতদূর দেখতে পাচ্ছি, এই প্রশ্নটিতে এড়িয়ে যায় না। B>A
এমিল জেবেক

4
@ oconnor0 যা অনুসরণ করে না। একটি দৃ concrete় উদাহরণের জন্য, এ> বি, এ> সি, বি> এ, এবং সি> বি অনুমান করুন তবে সেটটি সেটের যে কোনও উপাদানগুলির চেয়ে বড় (এবং এই সম্পত্তিটির সাথে একমাত্র উপাদান) তবে উপাদানগুলি যদি হয় তবে A, B, C ক্রমের মুখোমুখি হয়ে এলগোরিদম সিটি আউটপুট তৈরি করবে
এমিল জেবেক

24

এরিয়েল নোট হিসাবে , নীচে দেওয়া মান সর্বাধিক সন্ধানকারী অ্যালগরিদম:

def find_maximum(a):
    m = a[0]
    for x in a:
        if x > m: m = x
    return m

আসলে যতক্ষণ না পরিবর্তন ছাড়া কাজ করবে:

  • উপাদানগুলির যে কোনও জোড়া তুলনা করা যেতে পারে, এবং
  • ইনপুটটিতে সর্বাধিক উপাদান, অর্থাৎ একটি উপাদান যা ইনপুটটির অন্য কোনও উপাদানের চেয়ে জোড়ায় বড় contain

(উপরে আসলে শিথিল করা যেতে পারে, এমনকি, অ্যালগরিদম সংশোধন করার যতদিন হিসাবে আমরা অনুমান সর্বোচ্চ উপাদান প্রত্যেক অন্যান্য উপাদান সাথে তুলনীয় এবং যে করেও প্রথম ধৃষ্টতা x > yসবসময় মিথ্যা হলে উপাদান xএবং yঅনুপম আছে।)

বিশেষত, আপনার দাবি যে:

[…] একটি উত্তরের বিষয়ে নিশ্চিত হওয়ার জন্য, উপাদানটি প্রতিটি অন্যান্য উপাদানের সাথে সুস্পষ্টভাবে তুলনা করা প্রয়োজন (কারণ তুলনা ট্রানজিটিভ নয়)।

উপরোক্ত অনুমানের অধীনে সত্য নয়। আসলে, উপরের অ্যালগরিদম সর্বদা সর্বাধিক উপাদানটি সন্ধান করে তা প্রমাণ করার জন্য এটি পর্যালোচনা করা যথেষ্ট:

  1. যেহেতু লুপটি সমস্ত ইনপুট উপাদানগুলির উপরে পুনরাবৃত্তি করে, তাই কোনও পুনরাবৃত্তিতে xসর্বাধিক উপাদান হবে;
  2. যেহেতু সর্বাধিক উপাদানটি প্রতিটি অন্যান্য উপাদানের তুলনায় যুগলতর বেশি, এটি অনুসরণ করে যে সেই পুনরাবৃত্তির শেষে, mসর্বাধিক উপাদান হবে; এবং
  3. যেহেতু অন্য কোনও উপাদান সর্বাধিক উপাদানের চেয়ে জোড়ায় বড় হতে পারে না, এটি অনুসরণ করে যে mপরবর্তী কোনওগুলির মধ্যে পরিবর্তন হবে না।

অতএব, লুপের শেষে, mইনপুটটিতে একটি থাকে তবে সর্বদা সর্বাধিক উপাদান হবে।


পুনশ্চ. যদি ইনপুটটি অগত্যা সর্বদা একটি সর্বাধিক উপাদান থাকে না , তবে সত্য সত্যতা যাচাইয়ের জন্য প্রকৃতপক্ষে প্রার্থীর উত্তরটি অন্য উপাদানগুলির বিরুদ্ধে পরীক্ষা করতে হবে যা সত্যই এটি সর্বোচ্চ সর্বোচ্চ max তবে আমরা এর পরে ও ( এন ) সময়ে এটি করতে পারি উপরে সর্বোচ্চ-খোঁজার অ্যালগরিদম চলমান:

def find_maximum_if_any(a):
    # step 1: find the maximum, if one exists
    m = a[0]
    for x in a:
        if x > m: m = x

    # step 2: verify that the element we found is indeed maximal
    for x in a:
        if x > m: return None  # the input contains no maximal element
    return m  # yes, m is a maximal element

(আমি এখানে ধরে নিচ্ছি যে সম্পর্কটি >অপ্রতিরোধ্য, অর্থাত্ কোনও উপাদান নিজের থেকে বড় হতে পারে না that's যদি এটি অবশ্যই প্রয়োজন না হয়, তবে x > mদ্বিতীয় পদক্ষেপের তুলনাটি প্রতিস্থাপন করা উচিত)x ≠ m and x > m তুলনাটি , যেখানে পরিচয়ের তুলনা বোঝায়। বা আমরা কেবলমাত্র অপ্টিমাইজেশন প্রয়োগ করতে পারি নীচে উল্লিখিত।)

অ্যালগরিদমের এই প্রকরণটির যথার্থতা প্রমাণ করতে, সম্ভাব্য দুটি ক্ষেত্রে বিবেচনা করুন:

  • যদি ইনপুটটিতে সর্বাধিক উপাদান থাকে, তবে পদক্ষেপ 1 এটি খুঁজে পাবেন (উপরে দেখানো হয়েছে) এবং দ্বিতীয় ধাপটি এটি নিশ্চিত করবে।
  • যদি ইনপুটটিতে সর্বাধিক উপাদান থাকে না , তবে পদক্ষেপ 1 এ কিছু স্বেচ্ছাসেবী উপাদান হিসাবে বাছাই করা শেষ হবে m। এটি কোন উপাদানটি গুরুত্বপূর্ণ তা বিবেচ্য নয়, যেহেতু এটি যে কোনও ক্ষেত্রেই সর্বাধিক হবে এবং তাই দ্বিতীয় পদক্ষেপটি এটি সনাক্ত করে ফিরে আসবে None

আমরা সূচক সঞ্চিত যদি mইনপুট অ্যারের মধ্যে a, আমরা পারা আসলে কেবলমাত্র সেই উপাদান আছে যা আগে আসবে চেক করতে অপ্টিমাইজ ধাপ 2 mমধ্যে aকোন পরে উপাদান যেহেতু ইতিমধ্যে সঙ্গে তুলনা করা হয়েছে mপদক্ষেপ 1. কিন্তু এই অপ্টিমাইজেশান মধ্যে asymptotic সময় জটিলতা পরিবর্তন করে না অ্যালগরিদমের, যা এখনও হে ( এন )।


3
আসলে ওপি অনেক বিবরণ এড়িয়ে যায়। উদাহরণস্বরূপ, সম্পর্কের প্রতিচ্ছবি সম্পর্কে কিছুই বলা হয় না এবং তাই যদি এটি প্রতিচ্ছবি না হয় তবে অপরিজ্ঞাত if x > m:হয়।
fade2black

4

O(n)

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

n1

এই সমাধানটি একটি সূক্ষ্মতা দ্বারা সক্ষম করা হয়েছে: "কোনও উপাদান সমান হতে পারে না" এই সত্যের সাথে মিলিত যে সর্বদা একটি দুর্দান্ত উপাদান থাকবে। আমরা যদি নির্দেশিত গ্রাফ হিসাবে সম্পর্কগুলিকে জয়যুক্ত করার মানচিত্র করি তবে এটি স্পষ্ট যে আমরা কেবল বিজয় অনুসরণ করেই সবচেয়ে বড় উপাদানটিতে পৌঁছতে পারি।


1
" অ্যাসাইক্লিক পরিচালিত গ্রাফ " হ'ল ভুল মডেল: এটির পরিবর্তে " টুর্নামেন্ট " হওয়া উচিত । চক্র অনুমোদিত, এবং এটি প্রতিটি প্রান্ত ঠিক এক দিকে বিদ্যমান যে অত্যন্ত গুরুত্বপূর্ণ।
পিটার টেলর

@ পিটারটেলর আপনি একদম ঠিক বলেছেন, আমি কেবল সেই জয় নিয়েই ভাবছিলাম যা 'সর্বশ্রেষ্ঠ' উপাদানটির দিকে নিয়ে যায়, অন্য জয়গুলি কম প্রাসঙ্গিক তবে সবচেয়ে বড় আবিষ্কারের পথে পথভ্রষ্ট হতে পারে যাতে আপনি সঠিক যে তারা পারেন ' টি ছাড় হবে না
ডানিকভ

3

আমি ধরে নিয়েছি যে কমপক্ষে একটি একক উপাদানের (যা সর্বশ্রেষ্ঠ উপাদানটির অস্তিত্বের গ্যারান্টি দেয়) এর জন্য সম্পর্ক অ্যান্টিসিমমেট্রিক, অন্যথায় কাজটি অসম্ভব। সসীম সেটের সমস্ত উপাদান যদি তুলনীয় হয় তবে সাধারণ সন্ধানের সর্বাধিক পদ্ধতি কাজ করে।

কিছু উপাদান তুলনীয় না হলে নিম্নলিখিত পদ্ধতিটি কাজ করবে

max = nil
For i=1 to n
   if max is nil then
      max = a[i]
   if max and a[i] are not comparable then
      max = nil
   else if max < a[i] then
      max = a[i]
End

আলগোরিদিম ইনপুটটিতে কীভাবে কাজ করবেA,B,C,D

A>B,B>C,C>A
D>A,D>B,D>C


i=1: max=A
i=2: max=AA>B
i=3: max=CA<C
i=4: max=Dডি>সি)

এই অ্যালগরিদম যদি থেকে কাজ করে মি>একটি (অথবা একটি<মি) সবার জন্য একটি তারপর মিসর্বশ্রেষ্ঠ। যদিমি<একটি কিছু উপাদান জন্য একটি তারপর মিসবচেয়ে বড় হতে পারে না। একইভাবে, যদিএকটি এবং মিতুলনীয় নয় তবে তারা উভয়ই সেরা হতে পারে না। সমস্ত উপাদান তুলনীয় হলেও এই পদ্ধতিটি কাজ করবে।


আমি মনে করি না প্রথমটির else ifপ্রয়োজন আছে। maxসর্বাধিক হলে এটি ট্রিগার করা যায় না, এবং যদি সর্বোচ্চটি এখনও মুখোমুখি না হয় তবে এর মূল্য কী তা বিবেচনা করে না max
ধনী

হ্যাঁ, এটিই প্রথম। অন্যটি হ'ল দ্বিতীয়টি :)
ধনী

তুমি ifছাড়া elseএস ছাড়তে চাও? এটি কেবল একটি অভ্যাস: elseএস সহ আমরা তুলনাও করি না। :)
fade2black

1
কেবলমাত্র maxতালিকার কোনও উপাদানকে সূচনা করা এবং লুপের অভ্যন্তরে কী করা সহজ হবে না if max and a[i] are comparable and max < a[i] then max = a[i](যেখানে শর্তের প্রথম অংশটি বাদ দেওয়া যেতে পারে যদি আমরা ধরে নিই যে দুটি অতুলনীয় উপাদানকে তুলনা করার চেষ্টা সবসময় মিথ্যা ফল দেয়)?
ইলমারি করোনেন

1
@ বাডালেন ওপিকে ধরে নিয়েছে যে সর্বদা সর্বশ্রেষ্ঠ উপাদান রয়েছে। আপনার উদাহরণে এর চেয়ে বড় কোন উপাদান নেই।
fade2black

2

এমিল জেব্যাকের উত্থাপিত উদ্বেগগুলি সম্পর্কে অ্যারিলের জবাবের সংযোজন হিসাবে : যদি আমরা অনুমতি দিইএকজন<বি এবং বি<একজন তারপরে কোনও ও (এন) অ্যালগরিদম নেই:

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

(Note that the argument is independent of what the algorithm actually does with the information he gets about the elements, since it explains that he cannot know that an element is maximal before making n2 queries.)

For most of the algorithm the adversary will make sure to always return true for Ai<Aj until your last query for a given j. Note that you cannot know that one given element is maximal until you compared it to all other elements. Only for the last element for which you finish all relations the adversary will return true for the last element as well.

The resulting relation will always be such that there is some j0 for which Ai<Aj0i and for all other j there will be some ij such that Ai<Ajiij and we will not have Aij<Aj. The adversary chooses j0 and the ijs depending on your algorithm.

I hope this is somewhat understandable. Feel free to ask in comments or edit.

The basic idea is that you cannot gather any information about the remaining elements from the ones you already know if you allow a completely arbitrary relation.

The argument still works if we disallow A<A. We will only save n queries that way and still need n2n.


1

I'm going to cheat and call the number of A > B entries n and you need to look at every entry at least once.

That way you can loop over just the entries and remove the element that is less than the other from the set of possible solutions. With a hashset or similar this is possible in O(n)

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