| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1282779 | herominhsteve | Bosses (BOI16_bosses) | C++20 | 376 ms | 868 KiB |
#include <bits/stdc++.h>
#define el '\n'
#define FNAME "EMPLOYEE"
#define allof(x) x.begin(),x.end()
#define allof1(x) x.begin()+1,x.end()
#define mset(x,n) memset(x,(n),sizeof(x))
using namespace std;
const long long MOD = (long long) 1e9 + 7;
template<class X,class Y> bool minimize(X &a,Y b){ if (a>b) {a=b; return true;} return false;}
template<class X,class Y> bool maximize(X &a,Y b){ if (a<b) {a=b; return true;} return false;}
void setup(){
ios_base::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
if (fopen(FNAME".inp","r")){
freopen(FNAME".inp","r",stdin);
freopen(FNAME".out","w",stdout);
}
}
const int MAXN = 5005;
const int INF = 1e9 + 15092007;
int n;
vector<int> graph[MAXN];
void init(){
cin>>n;
for (int u=1;u<=n;u++){
int k; cin>>k;
while (k--){
int p; cin>>p;
graph[p].push_back(u);
}
}
}
long long bfs(int s){
vector<int> distancia(n+1,INF);
distancia[s] = 1;
queue<int> qu;
qu.push(s);
while (!qu.empty()){
int u = qu.front(); qu.pop();
for (int v : graph[u]){
if (minimize(distancia[v],distancia[u] + 1)){
qu.push(v);
}
}
}
long long res = 0;
for (int i=1;i<=n;i++) res += distancia[i];
return res;
}
void sol(){
long long res = (long long) 1e16 + 15092007;
for (int u=1;u<=n;u++)
minimize(res,bfs(u));
cout<<res;
}
int main(){
setup();
init();
sol();
}
컴파일 시 표준 에러 (stderr) 메시지
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
