元のタイトル
分析とコード
最初はこの質問を理解していませんでしたが、別の生徒の指導の下で理解しました。一般的な考えを理解したら、書き留めておきます。まず、ここでは写真を見ることができませんが、サンプルの出力とサンプルの出力から学びましたターゲットインターフェースは次のとおりです。
質問の意味を理解します。おおまかに0の位置は空の位置に相当し、隣接する位置はHuarong Roadのようにこの空の位置に移動できます。
多くの状況があるため、0を同じ位置に均一に移動してから判断することができます。隣接する位置のみを移動できるため、配列を設定することもできます。
上の図は、data [i]のiの位置であり、使用しますforループは0をdata [3]の位置に移動し、次にdata [0]、data [1]、およびdata [2]の相対位置を検討して位置を決定します。次の
図には3つの状況があり
ます。次のコード:
#include<iostream>
using namespace std;
int main()
{
int num[4];
int n;
cin >> n;
while(n--)
{
cin>>num[0]>>num[1]>>num[3]>>num[2];
for (int i=0; i<3; i++)
{
if (num[i]==0)
{
num[i] = num[i+1];
num[i+1] = 0;
}
}
int sum = num[0]*100+num[1]*10+num[2];
if (sum==123||sum==231||sum==312)
cout << "YES" << endl;
else
cout << "NO" << endl;
}
return 0;
}
それがあなたを助けるなら、あなたはそれを高く評価することもできます!