Codeforces Round 406 (Div. 1)
E
ALT
Codeforces
3200
原题
← D→
翻译中…

ALT is a planet in a galaxy called "Encore". Humans rule this planet but for some reason there's no dog in their planet, so the people there are sad and depressed. Rick and Morty are universal philanthropists and they want to make people in ALT happy.

翻译中…

ALT has $*n*$ cities numbered from $1$ to $*n*$ and $*n* - 1$ bidirectional roads numbered from $1$ to $*n* - 1$. One can go from any city to any other city using these roads.

翻译中…

There are two types of people in ALT:

翻译中…
  1. Guardians. A guardian lives in a house alongside a road and guards the road.
  2. Citizens. A citizen lives in a house inside a city and works in an office in another city.
翻译中…

Every person on ALT is either a guardian or a citizen and there's exactly one guardian alongside each road.

翻译中…

image

翻译中…

Rick and Morty talked to all the people in ALT, and here's what they got:

翻译中…
  • There are $*m*$ citizens living in ALT.
  • Citizen number $*i*$ lives in city number $*x*_{*i*}$ and works in city number $*y*_{*i*}$.
  • Every day each citizen will go through all roads along the shortest path from his home to his work.
  • A citizen will be happy if and only if either he himself has a puppy himself or all of guardians along his path to his work has a puppy (he sees the guardian's puppy in each road and will be happy).
  • A guardian is always happy.
翻译中…

You need to tell Rick and Morty the minimum number of puppies they need in order to make all people in ALT happy, and also provide an optimal way to distribute these puppies.

翻译中…

Input

翻译中…

The first line of input contains two integers $*n*$ and $*m*$ ($2 ≤ *n* ≤ 2 × 10^{4}$, $1 ≤ *m* ≤ 10^{4}$) — number of cities and number of citizens respectively.

翻译中…

The next $*n* - 1$ lines contain the roads, $*i*$-th line contains endpoint of $*i*$-th edge, $*v*$ and $*u*$ ($1 ≤ *v*, *u* ≤ *n*$, $*v* ≠ *u*$).

翻译中…

The next $*m*$ lines contain the information about citizens. $*i*$-th line contains two integers $*x*_{*i*}$ and $*y*_{*i*}$ ($1 ≤ *x*_{*i*}, *y*_{*i*} ≤ *n*$, $*x*_{*i*} ≠ *y*_{*i*}$).

翻译中…

Output

翻译中…

In the first line of input print a single integer $*k*$, the total number of puppies they need ($1 ≤ *k* ≤ *n*$).

翻译中…

In the second line print an integer $*q*$, the number of puppies to give to citizens, followed by $*q*$ distinct integers $*a*_{1}, *a*_{2}, ..., *a*_{*q*}$, index of citizens to give puppy to ($0 ≤ *q* ≤ *min*(*m*, *k*)$, $1 ≤ *a*_{*i*} ≤ *m*$).

翻译中…

In the third line print an integer $*e*$, the number of puppies to give to guardians, followed by $*e*$ distinct integers $*b*_{1}, *b*_{2}, ..., *b*_{*e*}$, index of road of guardians to give puppy to ($0 ≤ *e* ≤ *min*(*n* - 1, *k*)$, $1 ≤ *b*_{*i*} ≤ *n* - 1$).

翻译中…

Sum of $*q*$ and $*e*$ should be equal to $*k*$.

翻译中…

Note

翻译中…

Map of ALT in the first sample testcase (numbers written on a road is its index):

翻译中…

image

翻译中…

Map of ALT in the second sample testcase (numbers written on a road is its index):

翻译中…

image

翻译中…

样例

Input #1
4 5
2 4
3 4
1 4
2 4
2 1
2 4
1 2
2 3
Output #1
3
1 5
2 3 1
InputCopy OutputCopy
Input #2
4 7
3 4
1 4
2 1
4 2
4 2
2 4
1 4
2 1
3 1
4 2
Output #2
3
1 6
2 2 3
InputCopy OutputCopy
题目信息
题号
786E
时间限制
4 s
内存限制
256 MB
标签
数据结构
网络流
图论
树

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。