Help with 485(Div 1) A problem

Revision en1, by web_developer, 2020-10-21 00:09:18

Hello codeforces, I was solving this problem and I ended up with below solution, but this solution doesn't seem to work on test case 5, can you help me find where I've gone wrong and I don't want to see the editorial until I don't get my approach accepted. It's a simple bfs if you've got time to see it. Please help..I wasted so much time on this.

My solution

#include <bits/stdc++.h>
using namespace std;
#define N 100005
#define mod 1000000007

vector<bool> visited(N, false);
unordered_map<int, int> mp;
vector<int> goods(N);
vector<int> level(N, 0);
int ans=0;
int n, m, k, s;

void bfs(int node)
{
level[node]=0;
queue<int> q;
mp[goods[node]]++;
q.push(node);
while(!q.empty())
{
int tp=q.front();
q.pop();
visited[tp]=true;
if(mp.find(goods[tp])==mp.end())
{
ans+=level[tp];
mp[goods[tp]]++;
}
cout<<ans<<endl;
if(mp.size()==s)
{
cout<<ans<<" ";
return;
}
{
if(!visited[child])
{
q.push(child);
level[child]=level[tp]+1;
}
}
}
}

void solve()
{
cin>>n>>m>>k>>s;
rep(i, n)
{
cin>>goods[i];
}
rep(i, m)
{
int u, v;
cin>>u>>v;
u--, v--;
}
for(int i=0;i<n;i++)
{
ans=0;
mp.clear();
visited.clear();
visited=vector<bool>(N, false);
bfs(i);
}

}

signed main() {
// int t;cin>>t;while(t--)
solve();

return 0;
}


#### History

Revisions

Rev. Lang. By When Δ Comment
en2 web_developer 2020-10-21 08:44:17 504
en1 web_developer 2020-10-21 00:09:18 1595 Initial revision (published)