fork download
  1. #include <bits/stdc++.h>
  2. #define FOR(i,start,end,jump) for(int i=(start),_end=(end);i<=_end;i+=(jump))
  3. #define fi first
  4. #define se second
  5. #define ps(any) push_back(any)
  6. using namespace std;
  7.  
  8. const int maxn=1e2+3;
  9.  
  10. int n,m,x,y,a[maxn][maxn],cnt=0,en;
  11. vector<pair<int,int>> ed;
  12. bool f[maxn];
  13.  
  14. void READ(){
  15. ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
  16. freopen("KHUDAT.inp","r",stdin);
  17. freopen("KHUDAT.out","w",stdout);
  18. cin>>n>>m;
  19. FOR(i,1,m,1){
  20. cin>>x>>y;
  21. a[x][y]++;
  22. a[y][x]++;
  23. ed.ps(make_pair(x,y));
  24. }
  25. }
  26.  
  27. string change(int t)
  28. {
  29. string s="";
  30. if(t==0) return "0";
  31. while(t!=0){
  32. s=char((t%2)+'0')+s;
  33. t/=2;
  34. }
  35. return s;
  36. }
  37.  
  38. void bfs(int v)
  39. {
  40. f[v]=true;
  41. FOR(t,1,n,1){
  42. if(a[v][t]!=0 && !f[t])
  43. bfs(t);
  44. }
  45. }
  46. bool check(int str)
  47. {
  48. FOR(j,1,n,1) f[j]=false;
  49. en=-1;
  50. FOR(j,1,n,1) if(a[str][j]!=0) {en=j;break;}
  51. if(en==-1) return false;
  52. bfs(str);
  53. FOR(j,1,n,1) if(f[j]==false) return false;
  54. return true;
  55. }
  56.  
  57. void DO(){
  58. m--;
  59. FOR(i,0,m,1){
  60. a[ed[i].fi][ed[i].se]--;
  61. a[ed[i].se][ed[i].fi]--;
  62. if(!check(ed[i].fi)) cnt++;
  63. a[ed[i].fi][ed[i].se]++;
  64. a[ed[i].se][ed[i].fi]++;
  65. }
  66. cout<<change(cnt);
  67. }
  68.  
  69. int main()
  70. {
  71. READ();
  72. DO();
  73. }
  74.  
Success #stdin #stdout 0.01s 5284KB
stdin
Standard input is empty
stdout
Standard output is empty