Submission #444278

#TimeUsernameProblemLanguageResultExecution timeMemory
444278keta_tsimakuridzeICC (CEOI16_icc)C++14
0 / 100
6 ms5196 KiB
#include "icc.h"
#include<bits/stdc++.h>
#define f first
#define s second
using namespace std;
const int N=2e5+5,mod=1e9+7;
int comp[N],fix[N],X,idx,n;
vector<pair<int,int> > edges;
vector<int> a,x,y,V[N];
int solve(){
	int l = 0, r = n-1, u;
	while(l<=r) {
		int mid = (l+r)/2; 
		vector<int> x,y;
		for(int i = 0; i<=mid; i++) {
			x.push_back(a[i]);
		} 
		for(int i = mid+1; i<n; i++) {
			if(comp[a[i]] != comp[a[mid]]) y.push_back(a[i]);
		}
		if(!y.size()) {
			r = mid - 1;
			continue;
		}
		int x1[x.size()],y1[y.size()];
		for(int i = 0; i<x.size(); i++) {
			x1[i] = x[i];	
		}
		for(int i = 0; i<y.size(); i++) {
			y1[i] = y[i];
		}
		int f = query(x.size(),y.size(),x1,y1);
		if(f) {
			r = mid - 1; 
			u = a[mid];
		}
		else {
			l = mid + 1;
		}
	}
	return u;
}

void dfs(int u,int cur) {
	idx++;
	a.push_back(u);
	comp[u] = cur;
	fix[u] = 1;
	for(int i=0;i<V[u].size();i++) {
		if(!fix[V[u][i]]) dfs(V[u][i],cur);
	}
}
void run(int m){
	n = m;
	int lft = n - 1;
	X = -1;
	while(lft--){
		X++;
		for(int i=1;i<=n;i++) fix[i] = 0;
		int cur = 0;
		a.clear();
		idx = 0;
		for(int i=1;i<=n;i++) {
			if(!fix[i]) {
				dfs(i,++cur);
			}
		}		
		int l = 1, r = n-1,u = 0,v = 0;
		u = solve();
		reverse(a.begin(),a.end());
		v = solve();
		V[u].push_back(v);
		V[v].push_back(u);
		setRoad(u,v);	 
	
	
	}
}

Compilation message (stderr)

icc.cpp: In function 'int solve()':
icc.cpp:26:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   26 |   for(int i = 0; i<x.size(); i++) {
      |                  ~^~~~~~~~~
icc.cpp:29:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   29 |   for(int i = 0; i<y.size(); i++) {
      |                  ~^~~~~~~~~
icc.cpp: In function 'void dfs(int, int)':
icc.cpp:49:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   49 |  for(int i=0;i<V[u].size();i++) {
      |              ~^~~~~~~~~~~~
icc.cpp: In function 'void run(int)':
icc.cpp:68:7: warning: unused variable 'l' [-Wunused-variable]
   68 |   int l = 1, r = n-1,u = 0,v = 0;
      |       ^
icc.cpp:68:14: warning: unused variable 'r' [-Wunused-variable]
   68 |   int l = 1, r = n-1,u = 0,v = 0;
      |              ^
icc.cpp: In function 'int solve()':
icc.cpp:41:9: warning: 'u' may be used uninitialized in this function [-Wmaybe-uninitialized]
   41 |  return u;
      |         ^
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...