3번 왜 틀렸는지좀 알려줘ㅠㅠ
a,b들어왔을때 b->a 경로 검색해서 없으면 a->b넣어도 되니까 0출력하고 있으면 1출력하면 되는거 아니야??
제출 10번 채우고 포기했어
#include <iostream>
#include <vector>
#include <set>
#include <queue>
#include <string>
using namespace std;
string Answer = "";
vector<int> v[502];
bool find_path(int start, int end){
int x=start, i;
set<int> s;
queue<int> q;
q.push(x);
s.insert(x);
while(!q.empty()){
x=q.front();
q.pop();
for(i=0;i<v[x].size();i++){
if(v[x][i] == end) return true;
else {
if(s.find(v[x][i]) == s.end()){
s.insert(v[x][i]);
q.push(v[x][i]);
}
}
}
}
return false;
}
int main(int argc, char** argv)
{
int T, test_case;
cin >> T;
for(test_case = 0; test_case < T; test_case++)
{
Answer = "";
int i, n, m, k, a, b;
cin >> n >> m >> k;
for(i=1; i<m+1; i++){
cin>>a>>b;
v[a].push_back(b); //v[a]에 a랑 연결된거 저장
}
for(i=1;i<k+1;i++){
cin>>a>>b;
if(find_path(b,a)==false) { //b->a 연결되있는지 찾음
Answer += "0";
v[a].push_back(b);
}
else {
Answer += "1";
v[b].push_back(a);
}
}
그다음 답 출력
V 초기화 안하고 있는듯?