제출 #1104409

#제출 시각아이디문제언어결과실행 시간메모리
1104409anmattroiBitaro’s Party (JOI18_bitaro)C++14
100 / 100
684 ms146760 KiB
#include <bits/stdc++.h> #define maxn 100005 using namespace std; const int B = 100; int n, m, q; vector<int> adj[maxn]; vector<pair<int, int> > best[maxn]; int from[maxn]; int dd[maxn]; int a[maxn]; int dp[maxn]; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cin >> n >> m >> q; for (int i = 1; i <= m; i++) { int u, v; cin >> u >> v; adj[v].emplace_back(u); } for (int i = 1; i <= n; i++) from[i] = -1; for (int u = 1; u <= n; u++) { best[u].emplace_back(0, u); vector<int> from_indices; for (int v : adj[u]) { for (auto [w, x] : best[v]) { if (from[x] == -1) { from[x] = w + 1; from_indices.emplace_back(x); } else from[x] = max(from[x], w+1); } } for (int i : from_indices) {best[u].emplace_back(from[i], i); from[i] = -1;} sort(best[u].begin(), best[u].end(), greater<pair<int, int> >()); while (best[u].size() > B) best[u].pop_back(); from_indices.clear(); } auto sub1 = [&](int s, int k) { for (int i = 0; i < k; i++) { cin >> a[i]; dd[a[i]] = 1; } int ds = INT_MIN; for (auto [w, x] : best[s]) { if (dd[x]) continue; ds = max(ds, w); } cout << (ds == INT_MIN ? -1 : ds) << "\n"; for (int i = 0; i < k; i++) dd[a[i]] = 0; }; auto sub2 = [&](int s, int k) { for (int i = 1; i <= n; i++) dp[i] = 0; for (int i = 0; i < k; i++) { cin >> a[i]; dp[a[i]] = INT_MIN/10; } for (int i = 1; i <= s; i++) { for (int j : adj[i]) dp[i] = max(dp[i], dp[j] + 1); } cout << max(dp[s], -1) << "\n"; }; while (q--) { int s, k; cin >> s >> k; if (k >= 100) sub2(s, k); else sub1(s, k); } }

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

bitaro.cpp: In function 'int main()':
bitaro.cpp:33:23: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   33 |             for (auto [w, x] : best[v]) {
      |                       ^
bitaro.cpp: In lambda function:
bitaro.cpp:51:19: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   51 |         for (auto [w, x] : best[s]) {
      |                   ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...