これは(終了した)プログラミングコンテストからの質問です。私はこの問題を解決するのに苦労していましたが、それを解決するための健全な方法を見つけることができませんでした。
質問は次のとおりです。
IIITアラハバードは、毎年10月1日から5日までTechno-Cultural FiestaEffervescenceMM12を祝っています。シェフは、このお祭りシーズンにキャンディーを供給することに同意しました。シェフは、1からNまでの番号が付けられたN箱のキャンディーを用意しました(各番号は1回だけ発生します)。シェフは箱の配置に非常にこだわっています。彼は箱を特定の順序で並べたいと思っていますが、残念ながらシェフは忙しいです。彼はあなたに彼のために箱を並べ替えるように頼んだ。ボックスの現在の順序を考えると、指定された順序でボックスを再配置する必要があります。ただし、制限があります。必要な順序を実現するには、隣接する2つのボックスのみを交換できます。出力、必要なそのような隣接するスワップの最小数。
入力
入力の最初の行には、単一の整数T、テストケースの数が含まれています。各テストケースには3行が含まれ、最初の行には1つの整数N、ボックスの数が含まれます。次の2行にはそれぞれN個の数字が含まれ、最初の行は指定されたボックスの順序で、2番目の行は必要な順序です。
出力
テストケースごとに、必要な隣接スワップの最小数である単一の整数「K」を出力します。制約:
1<=T<=10
1<=N<=10^5
例
入力:
4
3
1 2 3
3 1 2
3
1 2 3
3 2 1
5
3 4 5 2 1
4 1 5 2 3
4
1 2 3 4
2 3 4 1
出力:
2
3
6
3
私はこの質問についてほとんど無知でした。誰かが質問の背後にある論理を説明できますか?