Submission #294182

#TimeUsernameProblemLanguageResultExecution timeMemory
294182MuhammetaliHighway Tolls (IOI18_highway)C++11
Compilation error
0 ms0 KiB
#include "highway.h"
#include <bits/stdc++.h>
#define mp make_pair
#define f first
#define s second
#define sz(x) (int)(x).size()
#define rsz resize
#define ins insert
#define ft front()
#define bk back()
#define pf push_front
#define pb push_back
#define eb emplace_back
#define lb lower_bound
#define ub upper_bound
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<int,int> pi;
typedef pair<ll,ll> pl;
typedef vector<int> vi;
typedef vector<bool> vb;
typedef vector<ll> vl;
typedef vector<pi> vpi;
typedef vector<pl> vpl;
template<class T>bool tmin(T& a,T b){if(a>b){a=b;return 1;}return 0;}
template<class T>bool tmax(T& a,T b){if(a<b){a=b;return 1;}return 0;}
vpl con[100000];
vi u,v,w,tree[2];
ll k;
bool vis[100000],find[100000];
int func(vector<int> &tree)
{
	int l=0;int r=sz(v)-1;
	while(l<r)
	{
		int mid=(l+r)/2;
		for (int i=l;i<=mid;i++) find[tree[i]]=1;
		for (int i=0;i<sz(u);i++)
		{
			if (find[u[i]]!=find[v[i]])
			{
				w[i]=1;
			}
		}
		if (k!=ask(w)) r=mid;
		else l=mid+1;
		for (int i=0;i<sz(u);i++) w[i]=0;
		for (int i=l;i<=mid;i++) find[tree[i]]=0;
	}
	return v[l];
}
void find_pair(int N, std::vector<int> U, std::vector<int> V, int A, int B)
{
	u=U;v=V;
	for (int i=0;i<sz(U);i++)
	{
		con[U[i]].pb({V[i],i});
		con[V[i]].pb({U[i],i});
	}
	w.resize(sz(U));
	k=ask(w);
	int l=0;int r=sz(U)-1;
	while(l<r)
	{
		int mid=(l+r)/2;
		for (int i=l;i<=mid;i++) w[i]=1;
		if (k!=ask(w)) r=mid;
		else l=mid+1;
		for (int i=l;i<=mid;i++) w[i]=0;
	}
	queue<pl> q;
	q.push({0,U[l]});
	q.push({1,V[l]});
	vis[U[l]]=vis[V[l]]=1;
	while(sz(q))
	{
		int bar=q.front().f;
		int la=q.front().s;
		q.pop();
		tree[bar].pb(la);
		for (auto i:con[la])
		{
			if (!vis[i.f])
			{
				vis[i.f]=1;
				q.push({bar,i.f});
			}
		}
	}
	answer(func(tree[0]),func(tree[1]));
}

Compilation message (stderr)

highway.cpp: In function 'int func(std::vector<int>&)':
highway.cpp:38:28: error: reference to 'find' is ambiguous
   38 |   for (int i=l;i<=mid;i++) find[tree[i]]=1;
      |                            ^~~~
In file included from /usr/include/c++/9/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:65,
                 from highway.cpp:2:
/usr/include/c++/9/bits/stl_algo.h:3930:5: note: candidates are: 'template<class _IIter, class _Tp> _IIter std::find(_IIter, _IIter, const _Tp&)'
 3930 |     find(_InputIterator __first, _InputIterator __last,
      |     ^~~~
In file included from /usr/include/c++/9/bits/locale_facets.h:48,
                 from /usr/include/c++/9/bits/basic_ios.h:37,
                 from /usr/include/c++/9/ios:44,
                 from /usr/include/c++/9/istream:38,
                 from /usr/include/c++/9/sstream:38,
                 from /usr/include/c++/9/complex:45,
                 from /usr/include/c++/9/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54,
                 from highway.cpp:2:
/usr/include/c++/9/bits/streambuf_iterator.h:373:5: note:                 'template<class _CharT2> typename __gnu_cxx::__enable_if<std::__is_char<_CharT2>::__value, std::istreambuf_iterator<_CharT> >::__type std::find(std::istreambuf_iterator<_CharT>, std::istreambuf_iterator<_CharT>, const _CharT2&)'
  373 |     find(istreambuf_iterator<_CharT> __first,
      |     ^~~~
highway.cpp:31:18: note:                 'bool find [100000]'
   31 | bool vis[100000],find[100000];
      |                  ^~~~
highway.cpp:41:8: error: reference to 'find' is ambiguous
   41 |    if (find[u[i]]!=find[v[i]])
      |        ^~~~
In file included from /usr/include/c++/9/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:65,
                 from highway.cpp:2:
/usr/include/c++/9/bits/stl_algo.h:3930:5: note: candidates are: 'template<class _IIter, class _Tp> _IIter std::find(_IIter, _IIter, const _Tp&)'
 3930 |     find(_InputIterator __first, _InputIterator __last,
      |     ^~~~
In file included from /usr/include/c++/9/bits/locale_facets.h:48,
                 from /usr/include/c++/9/bits/basic_ios.h:37,
                 from /usr/include/c++/9/ios:44,
                 from /usr/include/c++/9/istream:38,
                 from /usr/include/c++/9/sstream:38,
                 from /usr/include/c++/9/complex:45,
                 from /usr/include/c++/9/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54,
                 from highway.cpp:2:
/usr/include/c++/9/bits/streambuf_iterator.h:373:5: note:                 'template<class _CharT2> typename __gnu_cxx::__enable_if<std::__is_char<_CharT2>::__value, std::istreambuf_iterator<_CharT> >::__type std::find(std::istreambuf_iterator<_CharT>, std::istreambuf_iterator<_CharT>, const _CharT2&)'
  373 |     find(istreambuf_iterator<_CharT> __first,
      |     ^~~~
highway.cpp:31:18: note:                 'bool find [100000]'
   31 | bool vis[100000],find[100000];
      |                  ^~~~
highway.cpp:41:20: error: reference to 'find' is ambiguous
   41 |    if (find[u[i]]!=find[v[i]])
      |                    ^~~~
In file included from /usr/include/c++/9/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:65,
                 from highway.cpp:2:
/usr/include/c++/9/bits/stl_algo.h:3930:5: note: candidates are: 'template<class _IIter, class _Tp> _IIter std::find(_IIter, _IIter, const _Tp&)'
 3930 |     find(_InputIterator __first, _InputIterator __last,
      |     ^~~~
In file included from /usr/include/c++/9/bits/locale_facets.h:48,
                 from /usr/include/c++/9/bits/basic_ios.h:37,
                 from /usr/include/c++/9/ios:44,
                 from /usr/include/c++/9/istream:38,
                 from /usr/include/c++/9/sstream:38,
                 from /usr/include/c++/9/complex:45,
                 from /usr/include/c++/9/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54,
                 from highway.cpp:2:
/usr/include/c++/9/bits/streambuf_iterator.h:373:5: note:                 'template<class _CharT2> typename __gnu_cxx::__enable_if<std::__is_char<_CharT2>::__value, std::istreambuf_iterator<_CharT> >::__type std::find(std::istreambuf_iterator<_CharT>, std::istreambuf_iterator<_CharT>, const _CharT2&)'
  373 |     find(istreambuf_iterator<_CharT> __first,
      |     ^~~~
highway.cpp:31:18: note:                 'bool find [100000]'
   31 | bool vis[100000],find[100000];
      |                  ^~~~
highway.cpp:49:28: error: reference to 'find' is ambiguous
   49 |   for (int i=l;i<=mid;i++) find[tree[i]]=0;
      |                            ^~~~
In file included from /usr/include/c++/9/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:65,
                 from highway.cpp:2:
/usr/include/c++/9/bits/stl_algo.h:3930:5: note: candidates are: 'template<class _IIter, class _Tp> _IIter std::find(_IIter, _IIter, const _Tp&)'
 3930 |     find(_InputIterator __first, _InputIterator __last,
      |     ^~~~
In file included from /usr/include/c++/9/bits/locale_facets.h:48,
                 from /usr/include/c++/9/bits/basic_ios.h:37,
                 from /usr/include/c++/9/ios:44,
                 from /usr/include/c++/9/istream:38,
                 from /usr/include/c++/9/sstream:38,
                 from /usr/include/c++/9/complex:45,
                 from /usr/include/c++/9/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54,
                 from highway.cpp:2:
/usr/include/c++/9/bits/streambuf_iterator.h:373:5: note:                 'template<class _CharT2> typename __gnu_cxx::__enable_if<std::__is_char<_CharT2>::__value, std::istreambuf_iterator<_CharT> >::__type std::find(std::istreambuf_iterator<_CharT>, std::istreambuf_iterator<_CharT>, const _CharT2&)'
  373 |     find(istreambuf_iterator<_CharT> __first,
      |     ^~~~
highway.cpp:31:18: note:                 'bool find [100000]'
   31 | bool vis[100000],find[100000];
      |                  ^~~~