Submission #1273019

#TimeUsernameProblemLanguageResultExecution timeMemory
1273019goulthenRigged Roads (NOI19_riggedroads)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long
#define rep(i,a,b) for(int i = a; i <= b; i++)
#define per(i,a,b) for(int i = a; i >= b; i--)
#define pii pair<int,int>
#define pb push_back
#define fi first
#define se second

const int MAXN = 1e3+10;
const int INF = 1e18+10;
vector<int> g[MAXN];
int u[MAXN], v[MAXN], tin[MAXN], tout[MAXN], val[MAXN];
int span[MAXN];

int t = 0;
void dfs(int u, int p = -1) {
	tin[u] = ++t;
	for (int &v : g[u]) if (v!=p) dfs(v,u);
	tout[u] = ++t;
}

bool chd(int u, int v) {
	// v child of u
	return tin[u] <= tin[v] && tout[u] >= tout[v];
}

int32_t main() {
	ios_base::sync_with_stdio(0); cin.tie(nullptr);
	int n,m; cin >> n >> m;
	rep(i,1,m) cin >> u[i] >> v[i];
	
	rep(i,1,n-1) {
		int c;cin >> c;
		span[i] = c;
		int x = u[c], y=v[c];
		g[x].pb(y);
		g[y].pb(x);
	}

	dfs(1);

	int cur = 0;
	rep(i,1,m) {
		if(val[i]) continue;
		vector<int> vc;

		rep(j,1,n-1) {
			if (((chd(u[span[j]],u[i]) && chd(v[span[j]],u[i])) || (chd(u[span[j]],v[i]) && chd(v[span[j]],v[i]))) && !val[j]) vc.pb(span[j]);
		}
		sort(vc.begin(), vc.end());

		for (int &x : vc) val[x] = ++cur;
		if(!val[i]) val[i] = ++cur;
	}

	rep(i,1,m) cout << val[i] << " \n"[i==m];
	return 0;
}

Compilation message (stderr)

riggedroads.cpp: In function 'int32_t main()':
riggedroads.cpp:37:17: error: reference to 'span' is ambiguous
   37 |                 span[i] = c;
      |                 ^~~~
In file included from /usr/include/c++/13/ranges:45,
                 from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:89,
                 from riggedroads.cpp:1:
/usr/include/c++/13/span:56:11: note: candidates are: 'template<class _Type, long unsigned int _Extent> class std::span'
   56 |     class span;
      |           ^~~~
riggedroads.cpp:16:5: note:                 'long long int span [1010]'
   16 | int span[MAXN];
      |     ^~~~
riggedroads.cpp:51:37: error: reference to 'span' is ambiguous
   51 |                         if (((chd(u[span[j]],u[i]) && chd(v[span[j]],u[i])) || (chd(u[span[j]],v[i]) && chd(v[span[j]],v[i]))) && !val[j]) vc.pb(span[j]);
      |                                     ^~~~
/usr/include/c++/13/span:56:11: note: candidates are: 'template<class _Type, long unsigned int _Extent> class std::span'
   56 |     class span;
      |           ^~~~
riggedroads.cpp:16:5: note:                 'long long int span [1010]'
   16 | int span[MAXN];
      |     ^~~~
riggedroads.cpp:51:61: error: reference to 'span' is ambiguous
   51 |                         if (((chd(u[span[j]],u[i]) && chd(v[span[j]],u[i])) || (chd(u[span[j]],v[i]) && chd(v[span[j]],v[i]))) && !val[j]) vc.pb(span[j]);
      |                                                             ^~~~
/usr/include/c++/13/span:56:11: note: candidates are: 'template<class _Type, long unsigned int _Extent> class std::span'
   56 |     class span;
      |           ^~~~
riggedroads.cpp:16:5: note:                 'long long int span [1010]'
   16 | int span[MAXN];
      |     ^~~~
riggedroads.cpp:51:87: error: reference to 'span' is ambiguous
   51 |                         if (((chd(u[span[j]],u[i]) && chd(v[span[j]],u[i])) || (chd(u[span[j]],v[i]) && chd(v[span[j]],v[i]))) && !val[j]) vc.pb(span[j]);
      |                                                                                       ^~~~
/usr/include/c++/13/span:56:11: note: candidates are: 'template<class _Type, long unsigned int _Extent> class std::span'
   56 |     class span;
      |           ^~~~
riggedroads.cpp:16:5: note:                 'long long int span [1010]'
   16 | int span[MAXN];
      |     ^~~~
riggedroads.cpp:51:111: error: reference to 'span' is ambiguous
   51 |                         if (((chd(u[span[j]],u[i]) && chd(v[span[j]],u[i])) || (chd(u[span[j]],v[i]) && chd(v[span[j]],v[i]))) && !val[j]) vc.pb(span[j]);
      |                                                                                                               ^~~~
/usr/include/c++/13/span:56:11: note: candidates are: 'template<class _Type, long unsigned int _Extent> class std::span'
   56 |     class span;
      |           ^~~~
riggedroads.cpp:16:5: note:                 'long long int span [1010]'
   16 | int span[MAXN];
      |     ^~~~
riggedroads.cpp:51:146: error: reference to 'span' is ambiguous
   51 |                         if (((chd(u[span[j]],u[i]) && chd(v[span[j]],u[i])) || (chd(u[span[j]],v[i]) && chd(v[span[j]],v[i]))) && !val[j]) vc.pb(span[j]);
      |                                                                                                                                                  ^~~~
/usr/include/c++/13/span:56:11: note: candidates are: 'template<class _Type, long unsigned int _Extent> class std::span'
   56 |     class span;
      |           ^~~~
riggedroads.cpp:16:5: note:                 'long long int span [1010]'
   16 | int span[MAXN];
      |     ^~~~