I submitted below codes for one among them I got AC and for Other TLE. I am unable to find how its happening. Please Help.
AC Submission
include<bits/stdc++.h>
using namespace std;
define ll long long
int dx[] = {2, 2, -2, -2, 1, 1, -1, -1}; int dy[] = {1, -1, 1, -1, 2, -2, 2, -2};
bool isValid(int x, int y) { return x >= 0 && x < 8 && y >= 0 && y < 8; }
int bfs(int x1, int y1, int x2, int y2) { vector<vector> vis(8, vector(8, false)); queue<pair<pair<int, int>, int>> q;
q.push({{x1, y1}, 0}); vis[x1][y1] = true; while (!q.empty()) { auto cur = q.front(); q.pop(); int x = cur.first.first; int y = cur.first.second; int dist = cur.second; if (x == x2 && y == y2) { return dist; } for (int i = 0; i < 8; ++i) { int nx = x + dx[i]; int ny = y + dy[i]; if (isValid(nx, ny) && !vis[nx][ny]) { vis[nx][ny] = true; q.push({{nx, ny}, dist + 1}); } } } return -1; // If no path exists
}
int main() { ios_base::sync_with_stdio(false); cin.tie(NULL);
int t; cin >> t; while (t--) { string start, end; cin >> start >> end; int x1 = start[0] - 'a'; int y1 = start[1] - '1'; int x2 = end[0] - 'a'; int y2 = end[1] - '1'; int ans = bfs(x1, y1, x2, y2); cout << ans << endl; } return 0;
}
TLE Submission
include<bits/stdc++.h>
using namespace std;
int ans;
void bfs(int x1, int y1, int x2, int y2) { vector<vector> vis(8, vector (8, 0)); queue<vector> q;
q.push({x1,y1,0}); while(!q.empty()) { vector<int>s = q.front(); q.pop(); vis[s[0]][s[1]] = 1; if(s[0] == x2 && s[1] == y2)ans = min(ans, s[2]); vector<vector<int>> v; v.push_back({s[0]+2,s[1]-1,s[2]+1}); v.push_back({s[0]+2,s[1]+1,s[2]+1}); v.push_back({s[0]-2,s[1]-1,s[2]+1}); v.push_back({s[0]-2,s[1]+1,s[2]+1}); v.push_back({s[0]+1,s[1]-2,s[2]+1}); v.push_back({s[0]+1,s[1]+2,s[2]+1}); v.push_back({s[0]-1,s[1]-2,s[2]+1}); v.push_back({s[0]-1,s[1]+2,s[2]+1}); for(auto u : v) { if((u[0]>=0 && u[0]<=7 && u[1]>=0 && u[1]<=7) && !vis[u[0]][u[1]]) { q.push(u); } } }
}
int main() { ios_base::sync_with_stdio(false); cin.tie(NULL);
int t; cin >> t; while (t--) { ans = INT_MAX; string start,end; cin>>start>>end; int x1,y1,x2,y2; x1 = start[0]-'a'; y1 = int(start[1]-'1'); x2 = end[0]-'a'; y2 = int(end[1]-'1'); bfs(x1,y1,x2,y2); cout<<ans<<endl; } return 0;
}