답안 #197163

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
197163 2020-01-19T12:09:29 Z arnold518 Political Development (BOI17_politicaldevelopment) C++14
0 / 100
47 ms 2936 KB
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;

const int MAXN = 5e4;

int N, K, ans=1;
vector<int> adj[MAXN+10];
bool vis[MAXN+10];

int main()
{
	int i, j, k;
	scanf("%d%d", &N, &K);
	for(i=1; i<=N; i++)
	{
		int s;
		scanf("%d", &s);
		while(s--) { int t; scanf("%d", &t); adj[i].push_back(t+1); }
	}

	while(1)
	{
		pii t(987654321, 0);
		for(i=1; i<=N; i++) if(!vis[i]) t=min(t, pii(adj[i].size(), i));
		if(t.second==0) break;
		int now=t.second;

		vector<int> chd;
		for(auto it : adj[now]) chd.push_back(it);

		for(i=0; i<(1<<chd.size()); i++)
		{
			vector<int> V;
			for(j=0; j<chd.size(); j++) if(i&(1<<j)) V.push_back(chd[j]);
			bool flag=true;
			for(j=0; j<V.size(); j++) for(k=j+1; k<V.size(); k++) if(!binary_search(adj[V[j]].begin(), adj[V[j]].end(), V[k])) flag=false;
			if(flag) ans=max(ans, (int)V.size()+1); 
		}
		vis[now]=true;
		for(auto it : chd) adj[it].erase(lower_bound(adj[it].begin(), adj[it].end(), now));
		adj[now].clear();
	}
	printf("%d", ans);
}

Compilation message

politicaldevelopment.cpp: In function 'int main()':
politicaldevelopment.cpp:38:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for(j=0; j<chd.size(); j++) if(i&(1<<j)) V.push_back(chd[j]);
             ~^~~~~~~~~~~
politicaldevelopment.cpp:40:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for(j=0; j<V.size(); j++) for(k=j+1; k<V.size(); k++) if(!binary_search(adj[V[j]].begin(), adj[V[j]].end(), V[k])) flag=false;
             ~^~~~~~~~~
politicaldevelopment.cpp:40:42: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for(j=0; j<V.size(); j++) for(k=j+1; k<V.size(); k++) if(!binary_search(adj[V[j]].begin(), adj[V[j]].end(), V[k])) flag=false;
                                         ~^~~~~~~~~
politicaldevelopment.cpp:17:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d", &N, &K);
  ~~~~~^~~~~~~~~~~~~~~~
politicaldevelopment.cpp:21:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d", &s);
   ~~~~~^~~~~~~~~~
politicaldevelopment.cpp:22:28: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   while(s--) { int t; scanf("%d", &t); adj[i].push_back(t+1); }
                       ~~~~~^~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Runtime error 5 ms 2936 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 5 ms 2936 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 47 ms 1528 KB Output is correct
2 Runtime error 5 ms 2936 KB Execution killed with signal 11 (could be triggered by violating memory limits)
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 5 ms 2936 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 5 ms 2936 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -