제출 #1338415

#제출 시각아이디문제언어결과실행 시간메모리
1338415JPEGraidBitaro’s Party (JOI18_bitaro)C++20
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h>
#define int long long
using namespace std;
#define F first
#define S second
#define pb push_back

void solve() {
	int n, m, q; cin >> n >> m >> q;
	vector<pair<int, int>> gg(m);
	vector<pair<int, vector<int>>> ww(q);
	for(int i = 0 ; i < m ; i++) {
		cin >> gg[i].F >> gg[i].S;
		gg[i].F--;
		gg[i].S--;
	}

	for(int i = 0 ; i < q ; i++) {
		cin >> ww[i].F;
		int y; cin >> y;
		for(int j = 0 ; j < y ; j++) cin >> ww[i].S[j];
	}

	vector<vector<int>> got(n);
	for(int i = 0 ; i < m ; i++) {
		got[gg[i].F].push_back(gg[i].S);
	}

	// const int BLOCK_S = 500;
	// for(int i = 0 ; i < q ; i++) {
	// 	if(ww[i].S.size() >= BLOCK_S) {
	// 		vector<int> dp(n, 0);
	// 		for(int j = 0 ; j < n ; j++) {
	// 			for(int k = ww[i].F ; k < got[i].size() ; k++) {
	// 				dp[j] = max(dp[j], dp[k] + 1);
	// 			}
	// 		}

	// 		// sick ppl
	// 		int val = 0;
	// 		for(int j = 0 ; j < ww[i].S.size() ; j++) {

	// 		}
	// 	}

	// 	else {

	// 	}
	// }
	int dp[n];
	memset(dp, 0, sizeof dp);
	for(int i = 0 ; i < n ; i++) {
		for(int j = 0 ; j < got[i].size() ; j++) {
			dp[got[j]] = max(dp[got[j]], dp[i]+1);
		}
	}

	cout << dp[ww[0].F-1] << endl;
}

signed main() {
	int t = 1; // cin >> t;
	while(t--) solve();
}

컴파일 시 표준 에러 (stderr) 메시지

bitaro.cpp: In function 'void solve()':
bitaro.cpp:54:27: error: no match for 'operator[]' (operand types are 'long long int [n]' and '__gnu_cxx::__alloc_traits<std::allocator<std::vector<long long int> >, std::vector<long long int> >::value_type' {aka 'std::vector<long long int>'})
   54 |                         dp[got[j]] = max(dp[got[j]], dp[i]+1);
      |                           ^
bitaro.cpp:54:44: error: no match for 'operator[]' (operand types are 'long long int [n]' and '__gnu_cxx::__alloc_traits<std::allocator<std::vector<long long int> >, std::vector<long long int> >::value_type' {aka 'std::vector<long long int>'})
   54 |                         dp[got[j]] = max(dp[got[j]], dp[i]+1);
      |                                            ^