Submission #1138811

#TimeUsernameProblemLanguageResultExecution timeMemory
1138811adiyer9월 (APIO24_september)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
// #include "september.h"	

using namespace std;

const int MAXN = 2e5 + 11;

int l[MAXN], r[MAXN];

vector < int > g[MAXN];

void dfs(int v){
	for(int u : g[v]) dfs(u), l[v] = min(l[v], l[u]), r[v] = max(r[v], r[u]);	
}

int solve(int N, int M, vector<int> F, vector<vector<int>> S) {
	for(int i = 0; i < N; i++) g[i].clear(), r[i] = -1, l[i] = 1e9;
	for(int i = 1; i < N; i++) g[F[i]].push_back(i);
	for(int i = 0; i < M; i++)
		for(int j = 0; j < N - 1; j++)
			l[S[i][j]] = min(l[S[i][j]], j),
			r[S[i][j]] = max(r[S[i][j]], j);
	dfs(0);
	vector < pair < int, int > > vec;
	for(int i = 1; i < N; i++) vec.push_back({l[i], r[i]});
	sort(vec.begin(), vec.end());
	int cnt = 1, L = vec[0].first, R = vec[0].second;
	for(int i = 1; i < N - 1; i++){
		if(L <= vec[i].first && vec[i].first <= R) R = max(R, vec[i].second);
		else cnt++, L = vec[i].first, R = vec[i].second;
	}
	return cnt;
}

void taskcase() {
	int N, M;
	assert(2 == scanf("%d%d", &N, &M));
	std::vector<int> F(N);
	F[0] = -1;
	for (int i = 1; i < N; ++i)
  		assert(1 == scanf("%d", &F[i]));
	vector<vector<int>> S((M), vector<int>(N - 1));
	for (int i = 0; i < M; ++i){
		for (int j = 0; j < N - 1; ++j)
  			scanf("%d", &S[i][j]);
	}
	printf("%d\n", solve(N, M, F, S));
}

int main() {
	int T;
	scanf("%d", &T);
	while(T--) taskcase();
	return 0;
}

Compilation message (stderr)

september.cpp: In function 'void taskcase()':
september.cpp:45:30: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   45 |                         scanf("%d", &S[i][j]);
      |                         ~~~~~^~~~~~~~~~~~~~~~
september.cpp: In function 'int main()':
september.cpp:52:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   52 |         scanf("%d", &T);
      |         ~~~~~^~~~~~~~~~
/usr/bin/ld: /tmp/ccYHVdWm.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccNrC3eC.o:september.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status