Submission #1110754

#TimeUsernameProblemLanguageResultExecution timeMemory
1110754epicci23Split the Attractions (IOI19_split)C++17
18 / 100
68 ms14972 KiB
#include "bits/stdc++.h"
using namespace std;
#define all(x) (x).begin(),(x).end()
#define sz(x) (int)x.size()

const int N = 1e5 + 5;
vector<int> v[N];
int vis[N];
vector<int> ans,comp;

void dfs(int c){
  if(vis[c]) return;
  vis[c]=1;
  comp.push_back(c);
  for(int x:v[c]) dfs(x);
}

vector<int> find_split(int _n,int A,int B,int C,vector<int> u,vector<int> w){
 int n=_n,m=sz(u);
 ans.assign(n,0);
 vector<array<int,2>> s;
 s.push_back({A,1});
 s.push_back({B,2});
 s.push_back({C,3});
 sort(all(s));
  
 for(int i=0;i<m;i++){
  int a=u[i],b=w[i];
  v[a].push_back(b);
  v[b].push_back(a);
 }
  
 int p=1;

  for(int i=0;i<n;i++){
  	if(p<0) break;
  	comp.clear();
  	dfs(i);
  	for(int j=0;j<2;j++){
  	 if(p<0) break;
     if(sz(comp)>=s[p][0]){
      for(int z=0;z<s[p][0];z++){
      	ans[comp.back()]=s[p][1];
      	comp.pop_back();
      }
      p--;
     }
    }
  }
  
  for(int i=0;i<n;i++) if(ans[i]==0) ans[i] = s[2][1]; 
  return ans;
}


/*void _(){
  int n,m;
  cin >> n >> m;
  vector<array<int,2>> s;
  for(int i=1;i<=3;i++){
  	int a; cin >> a;
  	s.push_back({a,i});
  }
  sort(all(s));
  
  for(int i=1;i<n;i++){
  	int a,b;
  	cin >> a >> b;
  	v[a].push_back(b);
  	v[b].push_back(a);
  }
  
  int p = 1;

  for(int i=0;i<n;i++){
  	if(p<0) break;
  	comp.clear();
  	dfs(i);
  	for(int j=0;j<2;j++){
  	 if(p<0) break;
     if(sz(comp)>=s[p][0]){
      for(int z=0;z<s[p][0];z++){
      	ans[comp.back()]=s[p][1];
      	comp.pop_back();
      }
      p--;
     }
    }
  }
  for(int i=0;i<n;i++) if(ans[i]==0) ans[i] = s[2][1];
}

int32_t main(){
  ios::sync_with_stdio(0);
  cin.tie(0);
  int tc=1;//cin >> tc;
  while(tc--) _();
}*/
#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...