結果
| 問題 |
No.240 ナイト散歩
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2018-05-26 17:33:28 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,179 bytes |
| コンパイル時間 | 609 ms |
| コンパイル使用メモリ | 71,792 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-06-28 18:14:31 |
| 合計ジャッジ時間 | 1,448 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 WA * 1 |
| other | AC * 21 WA * 9 |
コンパイルメッセージ
main.cpp: In function 'bool canGoTo(int, int, int&)':
main.cpp:49:23: warning: 'yMin' may be used uninitialized [-Wmaybe-uninitialized]
49 | return canGoTo(xMin,yMin,num);
| ~~~~~~~^~~~~~~~~~~~~~~
main.cpp:37:18: note: 'yMin' was declared here
37 | int xMin,yMin;
| ^~~~
main.cpp:49:23: warning: 'xMin' may be used uninitialized [-Wmaybe-uninitialized]
49 | return canGoTo(xMin,yMin,num);
| ~~~~~~~^~~~~~~~~~~~~~~
main.cpp:37:13: note: 'xMin' was declared here
37 | int xMin,yMin;
| ^~~~
ソースコード
#include <iostream>
#include <vector>
using namespace std;
typedef long long LL;
int X,Y;
LL dist(int x1,int y1,int x2,int y2){
return (x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);
}
bool canGoTo(int x,int y,int &num)
{
if (x==X && y==Y){
cout<<"YES"<<endl;
return true;
}
vector<pair<int,int>> myVec;
myVec.push_back(make_pair(x-2,y-1));
myVec.push_back(make_pair(x-2,y+1));
myVec.push_back(make_pair(x-1,y-2));
myVec.push_back(make_pair(x-1,y+2));
myVec.push_back(make_pair(x+1,y-2));
myVec.push_back(make_pair(x+1,y+2));
myVec.push_back(make_pair(x+2,y-1));
myVec.push_back(make_pair(x+2,y+1));
int i;
for (i=0;i<myVec.size();i++){
if (myVec[i].first==X && myVec[i].second==Y){
myVec.clear();
cout<<"YES"<<endl;
return true;
}
}
num++;
if (num==3){
cout<<"NO"<<endl;
return false;
}
int xMin,yMin;
LL distMin=1e18;
LL distXY;
for (i=0;i<myVec.size();i++){
distXY=dist(X,Y,myVec[i].first,myVec[i].second);
if (distMin>distXY){
distMin=distXY;
xMin=myVec[i].first;
yMin=myVec[i].second;
}
}
myVec.clear();
return canGoTo(xMin,yMin,num);
}
int main(int argc, char* argv[])
{
cin>>X>>Y;
int num=1;
canGoTo(0,0,num);
return 0;
}