제출 #797074

#제출 시각아이디문제언어결과실행 시간메모리
797074penguinman수천개의 섬 (IOI22_islands)C++17
컴파일 에러
0 ms0 KiB
#include "circuit.h" #include <bits/stdc++.h> using std::cin; using std::cout; using std::endl; using std::vector; using std::string; using ll = long long; using vi = vector<ll>; using vii = vector<vi>; using pii = std::pair<ll,ll>; constexpr ll mod = 1'000'002'022; #define rep(i,j,k) for(ll i=ll(j); i<ll(k); i++) #define REP(i,j,k) for(ll i=ll(j); i<=ll(k); i++) #define per(i,j,k) for(ll i=ll(j); i>=ll(k); i--) #define all(a) a.begin(),a.end() #define pb emplace_back #define ln "\n" vi sum; vii edge; vi A; ll N,M; void init(int n, int m, std::vector<int> P, std::vector<int> a) { N = n, M = m; sum.resize(N+M,1); edge.resize(N+M); A.resize(N+M); rep(i,0,M) A[i+N] = a[i]; rep(i,1,N+M){ edge[P[i]].pb(i); } vi sum2(N+M); std::function<void(ll)> dfs1 = [&](ll now){ sum2[now] = edge[now].size(); sum2[now] = std::max(sum2[now], 1ll); for(auto next: edge[now]){ dfs1(next); sum2[now] *= sum2[next]; sum2[now] %= mod; } }; dfs1(0); std::function<void(ll)> dfs2 = [&](ll now){ ll len = edge[now].size(); vi l(len+1,1), r(len+1,1); rep(i,0,len){ l[i+1] = l[i]*sum2[edge[now][i]]%mod; } per(i,len-1,0){ r[i] = r[i+1]*sum2[edge[now][i]]%mod; } rep(i,0,len){ ll next = edge[now][i]; sum[next] = sum[now]*l[i]%mod*r[i+1]%mod; dfs2(next); } }; dfs2(0); } int count_ways(int L, int R) { ll ans = 0; REP(i,L,R) A[i] ^= 1; rep(i,N,N+M){ ans += A[i]*sum[i]; ans %= mod; } return ans; }

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

islands.cpp:1:10: fatal error: circuit.h: No such file or directory
    1 | #include "circuit.h"
      |          ^~~~~~~~~~~
compilation terminated.