彗星OJ喜び夏のシーズングリーハート
タイトル説明
グリーの弟が心房に歩いたすべての女の子が再び出てくることができていないと言われて......
N- \タイムズメートルのに抽象化我々グリーの弟の心房N- × m個のマップは、すべてのポイントは、最初は空です。ときに彼の心に少女(少女は場所(1,1)(1,1)ポイントだったこの時間)、彼はkのでしょうkは 1 \回11×1がマップに小さな障害を防ぐためにガールズ、それぞれの場所にのみ(すなわち、配置を重ね合わせることができない)バリアを配置することができます。しかし、少女の美しグリーの弟に捕獲されたため、これらの障害物を置くのに良い戦略を持っていなかったので、彼はランダムにこれらの障害物を置きました。
ランダムグリーよく置かすべての障害の後、地図の左上隅(1,1)(1,1)からの少女は、右下隅(N、M)(に行っN-、M)。(始点と終点が障害物を配置することができません)
それぞれの女の子が次の一手ユニットについて、いずれかの方向にステップアップすることができ、プログラムに配置されたすべての障害は、少女は必要なステップの最小数の右下から左上隅に行ってきましたどのくらいですか?(女の子は最短ルートを取るしようとします)
右下隅、出力は-1-1達することができなかった少女を置く何の障害に関係なく、合理的な配置プログラム、またはなし。
説明を入力します。
入力は、3つの正の整数のn、M、Kが含まN-、M、Kを。(1 \ N-LE、M、K \ル^ {10}。5 1≦ N-、M、K ≤105)
出力説明
出力整数の答え。
サンプル入力1
3 3 2
サンプル出力1
4
プロンプト
スペースは0で表される場合、1は、障害物がここに配置されている表します。一つは、スキームを置いています。
0 0 1
1 0 0
0 0 0
この場合には、右下隅の左上からのステップ数は4です。そして、このプログラムは、プログラムを必要な手順の最小数の妹です。(もちろん、他のプログラムはまた、小さなステップ4姉妹は、フィニッシュラインに到達することができるようになります作ることができますがあります)
そこで、右下に実行するように放置した場合、理想的な場合には、単に(2開始点と終了点を減算する)ステップN + M-2を実行する、ことを見出しました。
与えていないタイトルを入れて、ちょうど多くの障害を与えるどのように、我々は配置する最良の選択肢に合わせてデフォルトを障害物に置くことができます。
kの十分な数がブロックされた最適なルートを置くならば、私たちは、何を決定する必要があります。
ディールが出力され、その後、それは-1。
そうでない場合には直接出力N + M-2。
最後に、我々はこの質問恐ろしい水がわかります。
その後、ACコードに来るWAは長い長いポイントはなります開きません。
#include<cstdio>
using namespace std;
typedef long long ll;
ll n,m,k;
int main()
{
scanf("%lld%lld%lld",&n,&m,&k);
if(k>(n-1)*(m-1))
{
printf("-1");
return 0;
}
else
{
printf("%d",n+m-2);
return 0;
}
}