Submission #204217


Source Code Expand

#include "animals.h"
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <vector>
#include <set>
#include <map>
#include <algorithm>
using namespace std;
 
const int MAX_N = 100000;
 
struct Node
{
	int par;
	vector<int> ch;
	int sz;
};
 
int N;
Node node[MAX_N];
 
vector<int> G[MAX_N];
 
map<int, int> m;
 
int prev;
 
int dfs(int p, int v)
{
	node[v].par = p;
	node[v].sz = 1;
	for (int i = 0; i < G[v].size(); i++)
	{
		if (G[v][i] == p) continue;
		node[v].ch.push_back(G[v][i]);
		node[v].sz += dfs(v, G[v][i]);
	}
	return node[v].sz;
}
 
void init(int n, int E[][2])
{
	N = n;
	for (int i = 0; i < N - 1; i++)
	{
		G[E[i][0]].push_back(E[i][1]);
		G[E[i][1]].push_back(E[i][0]);
	}
 
	int sz = dfs(-1, 0);
	m[sz]++;
 
	prev = N;
}
 
int query(int v)
{
	for (int i = 0; i < node[v].ch.size(); i++)
	{
		int nn = node[v].ch[i];
		node[nn].par = -1;
		m[node[nn].sz]++;
	}
 
	int p = v, sz = node[v].sz;
	while (p != -1)
	{
		if (node[p].par == -1)
		{
			m[node[p].sz]--;
		}
		node[p].sz -= sz;
		if (node[p].par == -1)
		{
			m[node[p].sz]++;
		}
		p = node[p].par;
	}
 
	for (; prev >= 0; prev--)
	{
		if (m[prev] != 0) break;
	}
 
	return prev;
}

Submission Info

Submission Time
Task A - むこのどうぶつたち と しんりんのはかい (Innocent Animals and Destruction of Forests)
User snuke
Language IOI-Style C++ (GCC 5.4.1)
Score 100
Code Size 1254 Byte
Status AC
Exec Time 750 ms
Memory 29224 KB

Compile Error

./grader.cpp: In function ‘int main()’:
./grader.cpp:15: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result
./grader.cpp:17: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result
./grader.cpp:22: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result

Judge Result

Set Name Subtask1 Subtask2 Subtask3
Score / Max Score 20 / 20 25 / 25 55 / 55
Status
AC × 19
AC × 11
AC × 16
Set Name Test Cases
Subtask1 subtask1/1, subtask1/10, subtask1/11, subtask1/12, subtask1/13, subtask1/14, subtask1/15, subtask1/16, subtask1/17, subtask1/18, subtask1/19, subtask1/2, subtask1/3, subtask1/4, subtask1/5, subtask1/6, subtask1/7, subtask1/8, subtask1/9
Subtask2 subtask2/1, subtask2/10, subtask2/11, subtask2/2, subtask2/3, subtask2/4, subtask2/5, subtask2/6, subtask2/7, subtask2/8, subtask2/9
Subtask3 subtask3/1, subtask3/10, subtask3/11, subtask3/12, subtask3/13, subtask3/14, subtask3/15, subtask3/16, subtask3/2, subtask3/3, subtask3/4, subtask3/5, subtask3/6, subtask3/7, subtask3/8, subtask3/9
Case Name Status Exec Time Memory
subtask1/1 AC 478 ms 7668 KB
subtask1/10 AC 49 ms 7688 KB
subtask1/11 AC 48 ms 7692 KB
subtask1/12 AC 46 ms 7548 KB
subtask1/13 AC 48 ms 7700 KB
subtask1/14 AC 47 ms 7584 KB
subtask1/15 AC 48 ms 7564 KB
subtask1/16 AC 48 ms 7556 KB
subtask1/17 AC 47 ms 7588 KB
subtask1/18 AC 47 ms 7568 KB
subtask1/19 AC 48 ms 7684 KB
subtask1/2 AC 42 ms 7632 KB
subtask1/3 AC 43 ms 7556 KB
subtask1/4 AC 43 ms 7552 KB
subtask1/5 AC 42 ms 7636 KB
subtask1/6 AC 43 ms 7640 KB
subtask1/7 AC 42 ms 7612 KB
subtask1/8 AC 42 ms 7636 KB
subtask1/9 AC 44 ms 7660 KB
subtask2/1 AC 44 ms 7632 KB
subtask2/10 AC 683 ms 28936 KB
subtask2/11 AC 670 ms 29188 KB
subtask2/2 AC 43 ms 7616 KB
subtask2/3 AC 43 ms 7676 KB
subtask2/4 AC 47 ms 7680 KB
subtask2/5 AC 96 ms 9732 KB
subtask2/6 AC 361 ms 18176 KB
subtask2/7 AC 678 ms 28804 KB
subtask2/8 AC 671 ms 28804 KB
subtask2/9 AC 668 ms 28804 KB
subtask3/1 AC 50 ms 7688 KB
subtask3/10 AC 675 ms 29224 KB
subtask3/11 AC 734 ms 18264 KB
subtask3/12 AC 720 ms 18304 KB
subtask3/13 AC 715 ms 18304 KB
subtask3/14 AC 723 ms 18212 KB
subtask3/15 AC 689 ms 18176 KB
subtask3/16 AC 750 ms 18272 KB
subtask3/2 AC 49 ms 7564 KB
subtask3/3 AC 47 ms 7556 KB
subtask3/4 AC 47 ms 7560 KB
subtask3/5 AC 48 ms 7692 KB
subtask3/6 AC 690 ms 28796 KB
subtask3/7 AC 688 ms 28940 KB
subtask3/8 AC 625 ms 17176 KB
subtask3/9 AC 652 ms 17532 KB