Submission #303787

# Submission time Handle Problem Language Result Execution time Memory
303787 2020-09-20T16:04:57 Z Hemimor Bosses (BOI16_bosses) C++14
100 / 100
737 ms 716 KB
#include <algorithm>
#include <iostream>
#include <iomanip>
#include <numeric>
#include <cassert>
#include <vector>
#include <cmath>
#include <queue>
#include <set>
#include <map>
#define syosu(x) fixed<<setprecision(x)
using namespace std;
typedef long long ll;
typedef unsigned int uint;
typedef unsigned long long ull;
typedef pair<int,int> P;
typedef pair<double,double> pdd;
typedef pair<ll,ll> pll;
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef vector<double> vd;
typedef vector<vd> vvd;
typedef vector<ll> vl;
typedef vector<vl> vvl;
typedef vector<string> vs;
typedef vector<P> vp;
typedef vector<vp> vvp;
typedef vector<pll> vpll;
typedef pair<int,P> pip;
typedef vector<pip> vip;
const int inf=1<<29;
const ll INF=1ll<<60;
const double pi=acos(-1);
const double eps=1e-8;
const ll mod=998244353;
const int dx[4]={-1,0,1,0},dy[4]={0,-1,0,1};

int n;
vvi g;

int main(){
	cin>>n;
	g=vvi(n);
	for(int i=0;i<n;i++){
		int m;
		scanf("%d",&m);
		for(int j=0;j<m;j++){
			int x;
			scanf("%d",&x);
			x--;
			g[x].push_back(i);
		}
	}
	int res=inf;
	for(int i=0;i<n;i++){
		vi d(n,inf);
		d[i]=0;
		queue<int> q;
		q.push(i);
		while(!q.empty()){
			int v=q.front();
			q.pop();
			for(auto u:g[v]) if(d[u]==inf){
				d[u]=d[v]+1;
				q.push(u);
			}
		}
		int tmp=0;
		for(auto j:d){
			tmp+=j+1;
			if(tmp>inf) break;
		}
		res=min(res,tmp);
	}
	printf("%d\n",res);
}

Compilation message

bosses.cpp: In function 'int main()':
bosses.cpp:46:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   46 |   scanf("%d",&m);
      |   ~~~~~^~~~~~~~~
bosses.cpp:49:9: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   49 |    scanf("%d",&x);
      |    ~~~~~^~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 256 KB Output is correct
2 Correct 0 ms 256 KB Output is correct
3 Correct 1 ms 256 KB Output is correct
4 Correct 0 ms 256 KB Output is correct
5 Correct 1 ms 256 KB Output is correct
6 Correct 1 ms 256 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 256 KB Output is correct
2 Correct 0 ms 256 KB Output is correct
3 Correct 1 ms 256 KB Output is correct
4 Correct 0 ms 256 KB Output is correct
5 Correct 1 ms 256 KB Output is correct
6 Correct 1 ms 256 KB Output is correct
7 Correct 1 ms 384 KB Output is correct
8 Correct 1 ms 256 KB Output is correct
9 Correct 1 ms 256 KB Output is correct
10 Correct 1 ms 256 KB Output is correct
11 Correct 1 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 256 KB Output is correct
2 Correct 0 ms 256 KB Output is correct
3 Correct 1 ms 256 KB Output is correct
4 Correct 0 ms 256 KB Output is correct
5 Correct 1 ms 256 KB Output is correct
6 Correct 1 ms 256 KB Output is correct
7 Correct 1 ms 384 KB Output is correct
8 Correct 1 ms 256 KB Output is correct
9 Correct 1 ms 256 KB Output is correct
10 Correct 1 ms 256 KB Output is correct
11 Correct 1 ms 384 KB Output is correct
12 Correct 5 ms 384 KB Output is correct
13 Correct 4 ms 384 KB Output is correct
14 Correct 134 ms 512 KB Output is correct
15 Correct 18 ms 512 KB Output is correct
16 Correct 571 ms 700 KB Output is correct
17 Correct 727 ms 716 KB Output is correct
18 Correct 737 ms 640 KB Output is correct