Submission #1149218

#TimeUsernameProblemLanguageResultExecution timeMemory
1149218julia_08낙하산 고리들 (IOI12_rings)C++20
0 / 100
4097 ms42180 KiB
#include <bits/stdc++.h>
using namespace std;

const int MAXN = 1e6 + 10;

int deg[MAXN];

vector<int> adj[MAXN];

int n;

void Init(int n_){

  n = n_;

  for(int i=0; i<n; i++){
    adj[i].clear();
    deg[i] = 0;
  }

}

void Link(int a, int b){

  adj[a].push_back(b);
  adj[b].push_back(a);

  deg[a] ++, deg[b] ++;

}

int CountCritical(){

  int ans = 0;

  for(int i=1; i<=n; i++){

    bool ok = true;

    for(auto j : adj[i]){
      deg[j] --;
    }

    for(int j=1; j<=n; j++){
      if(j != i && deg[j] > 2){
        ok = false;
      }
    }

    for(auto j : adj[i]){
      deg[j] ++;
    }

    if(ok) ans ++;

  }

  /*
  int cnt_deg = 0;

  for(int i=0; i<n; i++){
    if(deg[i] >= 3){
      cnt_deg ++;
    }
  }

  for(int i=0; i<n; i++){

    int cur_deg = cnt_deg;

    if(deg[i] >= 3) cur_deg --;

    for(auto j : adj[i]){
      if(deg[j] == 3) cur_deg --;
    }

    if(cur_deg == 0) ans ++;

  }
  */

  return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...