{"id":10,"date":"2022-06-04T10:52:00","date_gmt":"2022-06-04T02:52:00","guid":{"rendered":"http:\/\/ubuntu.tim-wcx.ltd\/wordpress\/index.php\/2022\/06\/04\/2020-10-07-%e5%b9%b6%e6%9f%a5%e9%9b%86%e5%90%af%e5%8f%91%e5%bc%8f%e5%90%88%e5%b9%b6\/"},"modified":"2022-06-04T10:52:00","modified_gmt":"2022-06-04T02:52:00","slug":"2020-10-07-%e5%b9%b6%e6%9f%a5%e9%9b%86%e5%90%af%e5%8f%91%e5%bc%8f%e5%90%88%e5%b9%b6","status":"publish","type":"post","link":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/2022\/06\/04\/2020-10-07-%e5%b9%b6%e6%9f%a5%e9%9b%86%e5%90%af%e5%8f%91%e5%bc%8f%e5%90%88%e5%b9%b6\/","title":{"rendered":"2020-10-07 \u5e76\u67e5\u96c6+\u542f\u53d1\u5f0f\u5408\u5e76"},"content":{"rendered":"<p><svg  style=\"display: none;\">\n                        <path stroke-linecap=\"round\" d=\"M5,0 0,2.5 5,5z\" id=\"raphael-marker-block\" style=\"-webkit-tap-highlight-color: rgba(0, 0, 0, 0);\"><\/path>\n                    <\/svg><\/p>\n<p><a href=\"http:\/\/icpc.upc.edu.cn\/problem.php?cid=2592&#038;pid=5\">http:\/\/icpc.upc.edu.cn\/problem.php?cid=2592&#038;pid=5<\/a><\/p>\n<h5><a id=\"_1\"><\/a>\u9898\u76ee\u63cf\u8ff0<\/h5>\n<p>DIDIDI and WNJXYK are good friends. One day, they go to the zoo. The monkeys are playing happily. There are n monkeys named 1-n. At first, the first one hangs its tail on the tree. The other n-1 monkeys, either are caught by other monkeys, or catch other monkeys, or both. In the next m seconds, every second, there will be a monkey releasing its left hand or right hand. And then some monkeys will drop on the floor. Given the relationship between monkeys, calculate the landing time of every monkey.<\/p>\n<h5><a id=\"_3\"><\/a>\u8f93\u5165<\/h5>\n<p>The first line of input contains a positive integer T, telling you there are T test cases followed.<br \/> Each test case, first line includes two integers n, m. n means number of monkeys, and m as mentioned in the description.<br \/> Then following n lines, the k-th line has two integers, describe the k-th monkey\u2019s information. The first integer is the index of monkey in its left hand, the second integer is the index of monkey in its right hand. -1 indicates there is nothing in its hand.<br \/> Then following m lines, the i-th line gives the information at time i-1, every line has two numbers, the first is the index of the monkey, the second is the hand that it releases, 1 is left hand, 2 is right hand.<br \/> It\u2019s guaranteed that all the monkeys aren\u2019t on the floor at the beginning.<\/p>\n<h5><a id=\"_9\"><\/a>\u8f93\u51fa<\/h5>\n<p>For each test case, print a line \u201cCase #x: \u201d, where x is the case number (starting from 1) and print n integers. The i-th integer is the time monkey i drop in the floor. If monkey i don\u2019t land on the floor, print -1;<\/p>\n<h5><a id=\"_11\"><\/a>\u6837\u4f8b\u8f93\u5165<\/h5>\n<pre><code>1\n3 2\n-1 3\n3 -1\n1 2\n1 2\n3 1\n<\/code><\/pre>\n<h5><a id=\"_21\"><\/a>\u6837\u4f8b\u8f93\u51fa<\/h5>\n<pre><code>Case #1: -1 1 1\n<\/code><\/pre>\n<h5><a id=\"_25\"><\/a>\u63d0\u793a<\/h5>\n<p>Tips:1\u2264T\u226410,1\u2264n\u2264200,000,0\u2264m\u2264400,000<br \/> Initially, the first monkey\u2019s tail hangs on the tree. The first monkey\u2019s right hand catches the third monkey, the second monkey\u2019s left hand catches the third monkey, and the third\u2019s left hand catches the first monkey while the right hand catches the second. On time 0, the first monkey releases its right hand, no monkey lands on the floor. On time 1, the third monkey releases its left hand, then the second monkey and the third land on the floor.<\/p>\n<h5><a id=\"_28\"><\/a>\u53c2\u8003\u535a\u5ba2<\/h5>\n<p><a href=\"https:\/\/blog.csdn.net\/Cosmic_Tree\/article\/details\/108921892\">https:\/\/blog.csdn.net\/Cosmic_Tree\/article\/details\/108921892<\/a><\/p>\n<pre><code class=\"prism language-cpp\"><span class=\"token macro property\">#<span class=\"token directive keyword\">pragma<\/span> GCC optimize(3)<\/span>\n<span class=\"token macro property\">#<span class=\"token directive keyword\">pragma<\/span> GCC optimize(\"Ofast\",\"unroll-loops\",\"omit-frame-pointer\",\"inline\")<\/span>\n<span class=\"token macro property\">#<span class=\"token directive keyword\">include<\/span> <span class=\"token string\"><iostream><\/span><\/span>\n<span class=\"token macro property\">#<span class=\"token directive keyword\">include<\/span> <span class=\"token string\"><bits\/stdc++.h><\/span><\/span>\n<span class=\"token keyword\">using<\/span> <span class=\"token keyword\">namespace<\/span> std<span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">typedef<\/span> <span class=\"token keyword\">long<\/span> <span class=\"token keyword\">long<\/span> ll<span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">struct<\/span> node\n<span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">int<\/span> x<span class=\"token punctuation\">,<\/span>y<span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">int<\/span> ans<span class=\"token punctuation\">[<\/span><span class=\"token number\">200500<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span><span class=\"token punctuation\">{<!-- --><\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span>\nnode a<span class=\"token punctuation\">[<\/span><span class=\"token number\">400500<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span><span class=\"token punctuation\">{<!-- --><\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">int<\/span> vis<span class=\"token punctuation\">[<\/span><span class=\"token number\">200500<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span><span class=\"token number\">3<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span><span class=\"token punctuation\">{<!-- --><\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">int<\/span> g<span class=\"token punctuation\">[<\/span><span class=\"token number\">200500<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span><span class=\"token punctuation\">{<!-- --><\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">int<\/span> father<span class=\"token punctuation\">[<\/span><span class=\"token number\">200500<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span><span class=\"token punctuation\">{<!-- --><\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span>\nvector<span class=\"token operator\"><<\/span><span class=\"token keyword\">int<\/span><span class=\"token operator\">><\/span>deep<span class=\"token punctuation\">[<\/span><span class=\"token number\">200500<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">int<\/span> <span class=\"token function\">findfa<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> n<span class=\"token punctuation\">)<\/span>\n<span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>n<span class=\"token operator\">==<\/span>father<span class=\"token punctuation\">[<\/span>n<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span>\n        <span class=\"token keyword\">return<\/span> n<span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">else<\/span>\n        <span class=\"token keyword\">return<\/span> father<span class=\"token punctuation\">[<\/span>n<span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span><span class=\"token function\">findfa<\/span><span class=\"token punctuation\">(<\/span>father<span class=\"token punctuation\">[<\/span>n<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\n<span class=\"token keyword\">int<\/span> <span class=\"token function\">union1<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> a<span class=\"token punctuation\">,<\/span><span class=\"token keyword\">int<\/span> b<span class=\"token punctuation\">)<\/span>\n<span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">int<\/span> fa<span class=\"token operator\">=<\/span><span class=\"token function\">findfa<\/span><span class=\"token punctuation\">(<\/span>a<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">int<\/span> fb<span class=\"token operator\">=<\/span><span class=\"token function\">findfa<\/span><span class=\"token punctuation\">(<\/span>b<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>fa<span class=\"token operator\">==<\/span>fb<span class=\"token punctuation\">)<\/span>\n        <span class=\"token keyword\">return<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>deep<span class=\"token punctuation\">[<\/span>fa<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">size<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token operator\">><\/span>deep<span class=\"token punctuation\">[<\/span>fb<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">size<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span>\n        <span class=\"token function\">swap<\/span><span class=\"token punctuation\">(<\/span>fa<span class=\"token punctuation\">,<\/span>fb<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    father<span class=\"token punctuation\">[<\/span>fa<span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span>fb<span class=\"token punctuation\">;<\/span>\n    deep<span class=\"token punctuation\">[<\/span>fb<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">insert<\/span><span class=\"token punctuation\">(<\/span>deep<span class=\"token punctuation\">[<\/span>fb<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">end<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>deep<span class=\"token punctuation\">[<\/span>fa<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">begin<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>deep<span class=\"token punctuation\">[<\/span>fa<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">end<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\n<span class=\"token keyword\">int<\/span> <span class=\"token function\">union2<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> a<span class=\"token punctuation\">,<\/span><span class=\"token keyword\">int<\/span> b<span class=\"token punctuation\">,<\/span><span class=\"token keyword\">int<\/span> ans1<span class=\"token punctuation\">)<\/span>\n<span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>b<span class=\"token operator\">==<\/span><span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span>\n        <span class=\"token keyword\">return<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">int<\/span> fa<span class=\"token operator\">=<\/span><span class=\"token function\">findfa<\/span><span class=\"token punctuation\">(<\/span>a<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">int<\/span> fb<span class=\"token operator\">=<\/span><span class=\"token function\">findfa<\/span><span class=\"token punctuation\">(<\/span>b<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>fa<span class=\"token operator\">==<\/span>fb<span class=\"token punctuation\">)<\/span>\n        <span class=\"token keyword\">return<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">int<\/span> f1<span class=\"token operator\">=<\/span><span class=\"token function\">findfa<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>fa<span class=\"token operator\">==<\/span>f1<span class=\"token punctuation\">)<\/span>\n    <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token keyword\">for<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i<span class=\"token operator\">=<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>i<span class=\"token operator\"><<\/span>deep<span class=\"token punctuation\">[<\/span>fb<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">size<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>i<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span>\n        <span class=\"token punctuation\">{<!-- --><\/span>\n            ans<span class=\"token punctuation\">[<\/span>deep<span class=\"token punctuation\">[<\/span>fb<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span>ans1<span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n    <span class=\"token punctuation\">}<\/span>\n    <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>fb<span class=\"token operator\">==<\/span>f1<span class=\"token punctuation\">)<\/span>\n    <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token keyword\">for<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i<span class=\"token operator\">=<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>i<span class=\"token operator\"><<\/span>deep<span class=\"token punctuation\">[<\/span>fa<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">size<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>i<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span>\n        <span class=\"token punctuation\">{<!-- --><\/span>\n            ans<span class=\"token punctuation\">[<\/span>deep<span class=\"token punctuation\">[<\/span>fa<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span>ans1<span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n    <span class=\"token punctuation\">}<\/span>\n    <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>deep<span class=\"token punctuation\">[<\/span>fa<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">size<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token operator\">><\/span>deep<span class=\"token punctuation\">[<\/span>fb<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">size<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span>\n        <span class=\"token function\">swap<\/span><span class=\"token punctuation\">(<\/span>fa<span class=\"token punctuation\">,<\/span>fb<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    father<span class=\"token punctuation\">[<\/span>fa<span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span>fb<span class=\"token punctuation\">;<\/span>\n    deep<span class=\"token punctuation\">[<\/span>fb<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">insert<\/span><span class=\"token punctuation\">(<\/span>deep<span class=\"token punctuation\">[<\/span>fb<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">end<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>deep<span class=\"token punctuation\">[<\/span>fa<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">begin<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>deep<span class=\"token punctuation\">[<\/span>fa<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">end<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\n<span class=\"token keyword\">int<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">int<\/span> t<span class=\"token punctuation\">;<\/span>\n    <span class=\"token function\">scanf<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"%d\"<\/span><span class=\"token punctuation\">,<\/span><span class=\"token operator\">&<\/span>t<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">for<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> t1<span class=\"token operator\">=<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>t1<span class=\"token operator\"><=<\/span>t<span class=\"token punctuation\">;<\/span>t1<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span>\n    <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token keyword\">int<\/span> n<span class=\"token punctuation\">,<\/span>m<span class=\"token punctuation\">;<\/span>\n        <span class=\"token function\">scanf<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"%d%d\"<\/span><span class=\"token punctuation\">,<\/span><span class=\"token operator\">&<\/span>n<span class=\"token punctuation\">,<\/span><span class=\"token operator\">&<\/span>m<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">for<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i<span class=\"token operator\">=<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>i<span class=\"token operator\"><=<\/span>n<span class=\"token punctuation\">;<\/span>i<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span>\n        <span class=\"token punctuation\">{<!-- --><\/span>\n            father<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span>i<span class=\"token punctuation\">;<\/span>\n            deep<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">clear<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            deep<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">push_back<\/span><span class=\"token punctuation\">(<\/span>i<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            vis<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span>vis<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>\n            ans<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span><span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n        <span class=\"token keyword\">for<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i<span class=\"token operator\">=<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>i<span class=\"token operator\"><=<\/span>n<span class=\"token punctuation\">;<\/span>i<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span>\n        <span class=\"token punctuation\">{<!-- --><\/span>\n            <span class=\"token function\">scanf<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"%d%d\"<\/span><span class=\"token punctuation\">,<\/span><span class=\"token operator\">&<\/span>g<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span><span class=\"token operator\">&<\/span>g<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n        <span class=\"token keyword\">for<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i<span class=\"token operator\">=<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>i<span class=\"token operator\"><=<\/span>m<span class=\"token punctuation\">;<\/span>i<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span>\n        <span class=\"token punctuation\">{<!-- --><\/span>\n            <span class=\"token function\">scanf<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"%d%d\"<\/span><span class=\"token punctuation\">,<\/span><span class=\"token operator\">&<\/span>a<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>x<span class=\"token punctuation\">,<\/span><span class=\"token operator\">&<\/span>a<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>y<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            vis<span class=\"token punctuation\">[<\/span>a<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>x<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span>a<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>y<span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n        <span class=\"token keyword\">for<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i<span class=\"token operator\">=<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>i<span class=\"token operator\"><=<\/span>n<span class=\"token punctuation\">;<\/span>i<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span>\n        <span class=\"token punctuation\">{<!-- --><\/span>\n            <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>vis<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">==<\/span><span class=\"token number\">0<\/span><span class=\"token operator\">&&<\/span>g<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">!=<\/span><span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span>\n            <span class=\"token punctuation\">{<!-- --><\/span>\n                <span class=\"token function\">union1<\/span><span class=\"token punctuation\">(<\/span>i<span class=\"token punctuation\">,<\/span>g<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            <span class=\"token punctuation\">}<\/span>\n            <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>vis<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">==<\/span><span class=\"token number\">0<\/span><span class=\"token operator\">&&<\/span>g<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">!=<\/span><span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span>\n            <span class=\"token punctuation\">{<!-- --><\/span>\n                <span class=\"token function\">union1<\/span><span class=\"token punctuation\">(<\/span>i<span class=\"token punctuation\">,<\/span>g<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            <span class=\"token punctuation\">}<\/span>\n        <span class=\"token punctuation\">}<\/span>\n        <span class=\"token keyword\">for<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i<span class=\"token operator\">=<\/span>m<span class=\"token punctuation\">;<\/span>i<span class=\"token operator\">>=<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>i<span class=\"token operator\">--<\/span><span class=\"token punctuation\">)<\/span>\n        <span class=\"token punctuation\">{<!-- --><\/span>\n            <span class=\"token function\">union2<\/span><span class=\"token punctuation\">(<\/span>a<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>x<span class=\"token punctuation\">,<\/span>g<span class=\"token punctuation\">[<\/span>a<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>x<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span>a<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>y<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span>i<span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n        <span class=\"token function\">printf<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"Case #%d: \"<\/span><span class=\"token punctuation\">,<\/span>t1<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">for<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i<span class=\"token operator\">=<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>i<span class=\"token operator\"><=<\/span>n<span class=\"token punctuation\">;<\/span>i<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span>\n        <span class=\"token punctuation\">{<!-- --><\/span>\n            <span class=\"token function\">printf<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"%d \"<\/span><span class=\"token punctuation\">,<\/span>ans<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n        <span class=\"token function\">printf<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"n\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n    <span class=\"token keyword\">return<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n<p><a href=\"http:\/\/icpc.upc.edu.cn\/problem.php?cid=2592&#038;pid=7\">http:\/\/icpc.upc.edu.cn\/problem.php?cid=2592&#038;pid=7<\/a><\/p>\n<h5><a id=\"_145\"><\/a>\u9898\u76ee\u63cf\u8ff0<\/h5>\n<p>WNJXYK and DIDIDI are friends. They are thinking about getting strong all the time.<br \/> They are playing a very hard online game and they can\u2019t defeat any monster in this game now. If they can\u2019t defeat monsters, they will not get EXP and will not get strong forever. They finally found that the only way for them to get strong is to upgrade their equipment with their limited coins. Each equipment can be upgrade many times with paying some money. And of course, they will get power from each upgrade.<br \/> They have N equipment in total and each equipment can be upgrade for Ki times. At first, equipment are all in Level 0. If you upgrade the ith equipment from Level j-1 to Level j, you will pay Cij coins and get Wij power. They have M coins in total and they want to know the most power they can get with these coins.<\/p>\n<h5><a id=\"_149\"><\/a>\u8f93\u5165<\/h5>\n<p>The first line of input contains a positive integer T telling you there are T test cases followed.<br \/> In each Test Case, there is two positive integers N,M in the first line indicates that there are N equipment and M coins.<br \/> The following N Lines, there is a positive integer Ki at first indicates that the ith equipment can be upgrade Ki times. And there are 2Ki positive integers followed Wij,Cij.<\/p>\n<h5><a id=\"_153\"><\/a>\u8f93\u51fa<\/h5>\n<p>You need to output one line for each Test Case. \u201cCase #X: Y\u201d means the max power they can get in Xth Test Case is Y.<\/p>\n<h5><a id=\"_155\"><\/a>\u6837\u4f8b\u8f93\u5165<\/h5>\n<p>1<br \/> 3 5<br \/> 1 1 1<br \/> 2 1 1 5 4<br \/> 1 5 3<\/p>\n<h5><a id=\"_161\"><\/a>\u6837\u4f8b\u8f93\u51fa<\/h5>\n<p>Case #1: 7<\/p>\n<h5><a id=\"_163\"><\/a>\u63d0\u793a<\/h5>\n<p>Tips:1\u2264T\u226410,1\u2264N\u226420,0\u2264M\u22641e9,0\u2264Ki\u22644,1\u2264Cij,Wij\u22641e9<br \/> In this Sample, they can upgrade their equipment like this and this is the only for them to get 7 power with 5 coins.<br \/> <img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/img_convert\/2c49ff735674c608ec2259a25f0aa225.png#pic_center\" alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\"><\/p>\n<h5><a id=\"_168\"><\/a>\u89e3\u6790<\/h5>\n<p>\u53cc\u5411DFS+\u4e8c\u5206\u4f18\u5316<\/p>\n<pre><code class=\"prism language-cpp\"><span class=\"token macro property\">#<span class=\"token directive keyword\">pragma<\/span> GCC optimize(3)<\/span>\n<span class=\"token macro property\">#<span class=\"token directive keyword\">pragma<\/span> GCC optimize(\"Ofast\",\"unroll-loops\",\"omit-frame-pointer\",\"inline\")<\/span>\n<span class=\"token macro property\">#<span class=\"token directive keyword\">include<\/span> <span class=\"token string\"><iostream><\/span><\/span>\n<span class=\"token macro property\">#<span class=\"token directive keyword\">include<\/span> <span class=\"token string\"><bits\/stdc++.h><\/span><\/span>\n<span class=\"token keyword\">using<\/span> <span class=\"token keyword\">namespace<\/span> std<span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">typedef<\/span> <span class=\"token keyword\">long<\/span> <span class=\"token keyword\">long<\/span> ll<span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">const<\/span> ll INF<span class=\"token operator\">=<\/span> <span class=\"token number\">1e18<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">struct<\/span> node\n<span class=\"token punctuation\">{<!-- --><\/span>\n    ll x<span class=\"token punctuation\">,<\/span>y<span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span>\nll sum1<span class=\"token punctuation\">[<\/span><span class=\"token number\">100<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span><span class=\"token number\">100<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span> <span class=\"token punctuation\">{<!-- --><\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span>\nll p1<span class=\"token punctuation\">[<\/span><span class=\"token number\">100<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span><span class=\"token number\">100<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span> <span class=\"token punctuation\">{<!-- --><\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span>\nll n<span class=\"token punctuation\">,<\/span>m<span class=\"token punctuation\">;<\/span>\nnode ans<span class=\"token punctuation\">[<\/span><span class=\"token number\">5005000<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span> <span class=\"token punctuation\">{<!-- --><\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span>\nll max1<span class=\"token operator\">=<\/span><span class=\"token operator\">-<\/span>INF<span class=\"token punctuation\">;<\/span>\nll cnt<span class=\"token operator\">=<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>\nll size1<span class=\"token punctuation\">[<\/span><span class=\"token number\">100<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span> <span class=\"token punctuation\">{<!-- --><\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">bool<\/span> <span class=\"token function\">cmp<\/span><span class=\"token punctuation\">(<\/span>node a<span class=\"token punctuation\">,<\/span>node b<span class=\"token punctuation\">)<\/span>\n<span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">return<\/span> a<span class=\"token punctuation\">.<\/span>y<span class=\"token operator\"><<\/span>b<span class=\"token punctuation\">.<\/span>y<span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\nll <span class=\"token function\">dfs1<\/span><span class=\"token punctuation\">(<\/span>ll k<span class=\"token punctuation\">,<\/span>ll e<span class=\"token punctuation\">,<\/span>ll sum<span class=\"token punctuation\">,<\/span>ll p<span class=\"token punctuation\">)<\/span>\n<span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>k<span class=\"token operator\">><\/span>e<span class=\"token punctuation\">)<\/span>\n    <span class=\"token punctuation\">{<!-- --><\/span>\n        ans<span class=\"token punctuation\">[<\/span><span class=\"token operator\">++<\/span>cnt<span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span>node<span class=\"token punctuation\">{<!-- --><\/span>sum<span class=\"token punctuation\">,<\/span>p<span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span>\n        max1<span class=\"token operator\">=<\/span><span class=\"token function\">max<\/span><span class=\"token punctuation\">(<\/span>max1<span class=\"token punctuation\">,<\/span>sum<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">return<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n    <span class=\"token keyword\">for<\/span><span class=\"token punctuation\">(<\/span>ll i<span class=\"token operator\">=<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span> i<span class=\"token operator\"><=<\/span>size1<span class=\"token punctuation\">[<\/span>k<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span>\n    <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>p<span class=\"token operator\">+<\/span>p1<span class=\"token punctuation\">[<\/span>k<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token operator\">><\/span>m<span class=\"token punctuation\">)<\/span>\n            <span class=\"token keyword\">continue<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token function\">dfs1<\/span><span class=\"token punctuation\">(<\/span>k<span class=\"token operator\">+<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span>e<span class=\"token punctuation\">,<\/span>sum<span class=\"token operator\">+<\/span>sum1<span class=\"token punctuation\">[<\/span>k<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span>p<span class=\"token operator\">+<\/span>p1<span class=\"token punctuation\">[<\/span>k<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n    <span class=\"token function\">dfs1<\/span><span class=\"token punctuation\">(<\/span>k<span class=\"token operator\">+<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span>e<span class=\"token punctuation\">,<\/span>sum<span class=\"token punctuation\">,<\/span>p<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\nll <span class=\"token function\">find1<\/span><span class=\"token punctuation\">(<\/span>ll num<span class=\"token punctuation\">)<\/span>\n<span class=\"token punctuation\">{<!-- --><\/span>\n    ll l<span class=\"token operator\">=<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span>r<span class=\"token operator\">=<\/span>cnt<span class=\"token operator\">+<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">while<\/span><span class=\"token punctuation\">(<\/span>l<span class=\"token operator\"><<\/span>r<span class=\"token punctuation\">)<\/span>\n    <span class=\"token punctuation\">{<!-- --><\/span>\n        ll mid<span class=\"token operator\">=<\/span><span class=\"token punctuation\">(<\/span>l<span class=\"token operator\">+<\/span>r<span class=\"token punctuation\">)<\/span><span class=\"token operator\">\/<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>ans<span class=\"token punctuation\">[<\/span>mid<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>y<span class=\"token operator\"><<\/span>num<span class=\"token punctuation\">)<\/span>\n            l<span class=\"token operator\">=<\/span>mid<span class=\"token operator\">+<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">else<\/span> <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>ans<span class=\"token punctuation\">[<\/span>mid<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>y<span class=\"token operator\">><\/span>num<span class=\"token punctuation\">)<\/span>\n            r<span class=\"token operator\">=<\/span>mid<span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">else<\/span> <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>ans<span class=\"token punctuation\">[<\/span>mid<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>y<span class=\"token operator\">==<\/span>num<span class=\"token punctuation\">)<\/span>\n            l<span class=\"token operator\">=<\/span>mid<span class=\"token operator\">+<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n    <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>ans<span class=\"token punctuation\">[<\/span>l<span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>y<span class=\"token operator\"><=<\/span>num<span class=\"token punctuation\">)<\/span>\n        <span class=\"token keyword\">return<\/span> l<span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">else<\/span>\n        <span class=\"token keyword\">return<\/span> <span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\nll <span class=\"token function\">dfs2<\/span><span class=\"token punctuation\">(<\/span>ll k<span class=\"token punctuation\">,<\/span>ll e<span class=\"token punctuation\">,<\/span>ll sum<span class=\"token punctuation\">,<\/span>ll p<span class=\"token punctuation\">)<\/span>\n<span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>k<span class=\"token operator\">><\/span>e<span class=\"token punctuation\">)<\/span>\n    <span class=\"token punctuation\">{<!-- --><\/span>\n        ll pos<span class=\"token operator\">=<\/span><span class=\"token function\">find1<\/span><span class=\"token punctuation\">(<\/span>m<span class=\"token operator\">-<\/span>p<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">~<\/span>pos<span class=\"token punctuation\">)<\/span>\n            max1<span class=\"token operator\">=<\/span><span class=\"token function\">max<\/span><span class=\"token punctuation\">(<\/span>max1<span class=\"token punctuation\">,<\/span>sum<span class=\"token operator\">+<\/span>ans<span class=\"token punctuation\">[<\/span>pos<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>x<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        max1<span class=\"token operator\">=<\/span><span class=\"token function\">max<\/span><span class=\"token punctuation\">(<\/span>max1<span class=\"token punctuation\">,<\/span>sum<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">return<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n    <span class=\"token keyword\">for<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i<span class=\"token operator\">=<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span> i<span class=\"token operator\"><=<\/span>size1<span class=\"token punctuation\">[<\/span>k<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span>\n    <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>p<span class=\"token operator\">+<\/span>p1<span class=\"token punctuation\">[<\/span>k<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token operator\">><\/span>m<span class=\"token punctuation\">)<\/span>\n            <span class=\"token keyword\">continue<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token function\">dfs2<\/span><span class=\"token punctuation\">(<\/span>k<span class=\"token operator\">+<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span>e<span class=\"token punctuation\">,<\/span>sum<span class=\"token operator\">+<\/span>sum1<span class=\"token punctuation\">[<\/span>k<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span>p<span class=\"token operator\">+<\/span>p1<span class=\"token punctuation\">[<\/span>k<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n    <span class=\"token function\">dfs2<\/span><span class=\"token punctuation\">(<\/span>k<span class=\"token operator\">+<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span>e<span class=\"token punctuation\">,<\/span>sum<span class=\"token punctuation\">,<\/span>p<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\n<span class=\"token keyword\">int<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">int<\/span> t<span class=\"token punctuation\">;<\/span>\n    <span class=\"token function\">scanf<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"%d\"<\/span><span class=\"token punctuation\">,<\/span><span class=\"token operator\">&<\/span>t<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">for<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> t1<span class=\"token operator\">=<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span> t1<span class=\"token operator\"><=<\/span>t<span class=\"token punctuation\">;<\/span> t1<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span>\n    <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token function\">scanf<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"%lld%lld\"<\/span><span class=\"token punctuation\">,<\/span><span class=\"token operator\">&<\/span>n<span class=\"token punctuation\">,<\/span><span class=\"token operator\">&<\/span>m<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        cnt<span class=\"token operator\">=<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">for<\/span><span class=\"token punctuation\">(<\/span>ll i<span class=\"token operator\">=<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span> i<span class=\"token operator\"><=<\/span>n<span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span>\n        <span class=\"token punctuation\">{<!-- --><\/span>\n            <span class=\"token function\">scanf<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"%lld\"<\/span><span class=\"token punctuation\">,<\/span><span class=\"token operator\">&<\/span>size1<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            <span class=\"token keyword\">for<\/span><span class=\"token punctuation\">(<\/span>ll j<span class=\"token operator\">=<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span> j<span class=\"token operator\"><=<\/span>size1<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span> j<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span>\n            <span class=\"token punctuation\">{<!-- --><\/span>\n                ll x<span class=\"token punctuation\">,<\/span>y<span class=\"token punctuation\">;<\/span>\n                <span class=\"token function\">scanf<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"%lld%lld\"<\/span><span class=\"token punctuation\">,<\/span><span class=\"token operator\">&<\/span>sum1<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span>j<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span><span class=\"token operator\">&<\/span>p1<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span>j<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n                sum1<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span>j<span class=\"token punctuation\">]<\/span><span class=\"token operator\">+<\/span><span class=\"token operator\">=<\/span>sum1<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span>j<span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span>\n                p1<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span>j<span class=\"token punctuation\">]<\/span><span class=\"token operator\">+<\/span><span class=\"token operator\">=<\/span>p1<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span>j<span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span>\n            <span class=\"token punctuation\">}<\/span>\n        <span class=\"token punctuation\">}<\/span>\n        max1<span class=\"token operator\">=<\/span><span class=\"token operator\">-<\/span>INF<span class=\"token punctuation\">;<\/span>\n        <span class=\"token function\">dfs1<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span>n<span class=\"token operator\">\/<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token function\">sort<\/span><span class=\"token punctuation\">(<\/span>ans<span class=\"token operator\">+<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span>ans<span class=\"token operator\">+<\/span><span class=\"token number\">1<\/span><span class=\"token operator\">+<\/span>cnt<span class=\"token punctuation\">,<\/span>cmp<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        ans<span class=\"token punctuation\">[<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>x<span class=\"token operator\">=<\/span><span class=\"token operator\">-<\/span>INF<span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">for<\/span><span class=\"token punctuation\">(<\/span>ll i<span class=\"token operator\">=<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span> i<span class=\"token operator\"><=<\/span>cnt<span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span>\n        <span class=\"token punctuation\">{<!-- --><\/span>\n            ans<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>x<span class=\"token operator\">=<\/span><span class=\"token function\">max<\/span><span class=\"token punctuation\">(<\/span>ans<span class=\"token punctuation\">[<\/span>i<span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>x<span class=\"token punctuation\">,<\/span>ans<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>x<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n        <span class=\"token function\">dfs2<\/span><span class=\"token punctuation\">(<\/span>n<span class=\"token operator\">\/<\/span><span class=\"token number\">2<\/span><span class=\"token operator\">+<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span>n<span class=\"token punctuation\">,<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token function\">printf<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"Case #%d: %lldn\"<\/span><span class=\"token punctuation\">,<\/span>t1<span class=\"token punctuation\">,<\/span>max1<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n    <span class=\"token keyword\">return<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>http:\/\/icpc.upc.edu.cn\/pr&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-10","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/wp-json\/wp\/v2\/posts\/10","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/wp-json\/wp\/v2\/comments?post=10"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/wp-json\/wp\/v2\/posts\/10\/revisions"}],"wp:attachment":[{"href":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/wp-json\/wp\/v2\/media?parent=10"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/wp-json\/wp\/v2\/categories?post=10"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/wp-json\/wp\/v2\/tags?post=10"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}