#include <bits/stdc++.h>
#include "simurgh.h"
#define f first
#define s second
#define pb push_back
#define mx 250003
#define ALL(x) x.begin(),x.end()
using namespace std;
int di[mx],M,idx,brp[505][505],level[mx];
bool sudah[mx];
int P[mx];
vector<pair<int,int>>cycle;
vector<int> r;
vector<int>g[mx];
void dfs(int now,int par=0,int lev=1){
sudah[now]=true;
level[now]=lev;
for(auto i:g[now]){
if(i==par)
continue;
if(!sudah[i]){
P[i]=now;
di[brp[now][i]]=idx++;
r.pb(brp[now][i]);
dfs(i,now,lev+1);
}
else if(level[i]<level[now]){
cycle.pb({now,i});
}
}
}
bool cmp(pair<int,int>x,pair<int,int>y){
return level[x.s]>level[y.s];
}
int par[mx];
int find(int aa){
if(aa==par[aa])return aa;
return par[aa]=find(par[aa]);
}
vector<int> find_roads(int N, vector<int> u, vector<int> v) {
M=u.size();
for(int i=0;i<M;i++){
g[u[i]+1].pb(v[i]+1);
g[v[i]+1].pb(u[i]+1);
brp[u[i]+1][v[i]+1]=i;
brp[v[i]+1][u[i]+1]=i;
}
memset(di,-1,sizeof di);
dfs(1,0);
vector<int>satu(N-1);
int maks=count_common_roads(r);
for(int i:r){
// cout<<u[i]<<" -> "<<v[i]<<" -- "<<i<<endl;
}
// cout<<maks<<endl;
sort(ALL(cycle),cmp);
cnt++;
int cnt=0;
// debug(maks);
for(auto i:cycle){
// cout<<i.f-1<<" -> "<<i.s-1<<endl;
int dari=i.f,ke=i.s;
int besar=0;
while(dari!=ke){
// cout<<"ini "<<" "<<dari-1<<" "<<P[dari]-1<<endl;
if(di[brp[dari][P[dari]]]!=-1){
int tmp=brp[dari][P[dari]];
r[di[tmp]]=brp[i.f][i.s];
for(int j=0;j<N;j++)
par[j]=j;
bool ya=true;
for(int i:r){
int x=find(u[i]);
int y=find(v[i]);
if(x==y){
ya=false;
break;
}
par[x]=y;
}
int sem=0;
if(ya && cnt<30000)cnt++,sem=count_common_roads(r);
// debug(sem);
if(sem>besar){
satu=r;
besar=sem;
}
r[di[tmp]]=brp[dari][P[dari]];
}
dari=P[dari];
}
if(besar>maks){
maks=besar;
r=satu;
memset(di,-1,sizeof di);
for(int i=0;i<N-1;i++){
di[r[i]]=i;
}
}
// for(int i:r)cout<<i<<' ';
// cout<<endl;
// debug(maks);
}
// cout<<maks<<endl;
return r;
}
Compilation message
simurgh.cpp: In function 'std::vector<int> find_roads(int, std::vector<int>, std::vector<int>)':
simurgh.cpp:55:10: warning: unused variable 'i' [-Wunused-variable]
for(int i:r){
^
simurgh.cpp:60:2: error: 'cnt' was not declared in this scope
cnt++;
^~~
simurgh.cpp:60:2: note: suggested alternative: 'int'
cnt++;
^~~
int