สมมติว่าเรามีสองอาร์เรย์ X และ Y ที่มีขนาดเท่ากัน มีกองหินที่มีจำนวน X[i] ของหินบนดัชนี ith ในวันแรกและในวันที่สอง ith ดัชนีมีจำนวนของหิน Y[i] วันแรกมีสมาชิกมากันเยอะ ไม่ว่าพวกเขาจะไม่ทำอะไรเลยหรือเพิ่มหินสองสามก้อนในกองหรือสลับหินสองสามก้อนจากกองหนึ่งไปอีกกอง เราต้องตรวจสอบว่า Y ถูกต้องจาก X หรือไม่
ดังนั้น ถ้าอินพุตเป็นเหมือน X =[1, 2, 3, 4, 5]; Y =[2, 1, 4, 3, 5] แล้วผลลัพธ์จะเป็น True เพราะย้ายหินหนึ่งก้อนจากกองที่สองไปยังกองแรก จากกองที่ 4 ไปที่กองที่ 3 หนึ่งก้อน
ขั้นตอน
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
n :=ขนาดของ Afor เริ่มต้น i :=0 เมื่อฉันs จะเป็นเท็จ มิฉะนั้น จะเป็นจริง)
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
#includeใช้เนมสเปซ std;bool แก้ปัญหา(vector A, vector B){ int n =A.size(), d =0, s =0; สำหรับ (int i =0; i s ? เท็จ:จริง;}int main(){ vector X ={ 1, 2, 3, 4, 5 }; เวกเตอร์ Y ={ 2, 1, 4, 3, 5 }; ศาล <<แก้ (X, Y) < อินพุต
<ก่อน>{ 1, 2, 3, 4, 5 }, { 2, 1, 4, 3, 5 }
ผลลัพธ์
1