Submission #19541251
Source Code Expand
Copy
/* in the name of Anton */
/*
Compete against Yourself.
Author - Aryan Choudhary (@aryanc403)
*/
#ifdef ARYANC403
#include "/home/aryan/codes/PastCodes/template/header.h"
#else
#pragma GCC optimize ("Ofast")
#pragma GCC target ("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx")
#pragma GCC optimize ("-ffloat-store")
#include<iostream>
#include<bits/stdc++.h>
#define dbg(args...)
#endif
using namespace std;
#define fo(i,n) for(i=0;i<(n);++i)
#define repA(i,j,n) for(i=(j);i<=(n);++i)
#define repD(i,j,n) for(i=(j);i>=(n);--i)
#define all(x) begin(x), end(x)
#define sz(x) ((lli)(x).size())
#define pb push_back
#define mp make_pair
#define X first
#define Y second
#define endl "\n"
typedef long long int lli;
typedef long double mytype;
typedef pair<lli,lli> ii;
typedef vector<ii> vii;
typedef vector<lli> vi;
const auto start_time = std::chrono::high_resolution_clock::now();
void aryanc403()
{
#ifdef ARYANC403
auto end_time = std::chrono::high_resolution_clock::now();
std::chrono::duration<double> diff = end_time-start_time;
cerr<<"Time Taken : "<<diff.count()<<"\n";
#endif
}
const lli INF = 0xFFFFFFFFFFFFFFFL;
lli seed;
mt19937 rng(seed=chrono::steady_clock::now().time_since_epoch().count());
inline lli rnd(lli l=0,lli r=INF)
{return uniform_int_distribution<lli>(l,r)(rng);}
class CMP
{public:
bool operator()(ii a , ii b) //For min priority_queue .
{ return ! ( a.X < b.X || ( a.X==b.X && a.Y <= b.Y )); }};
void add( map<lli,lli> &m, lli x,lli cnt=1)
{
auto jt=m.find(x);
if(jt==m.end()) m.insert({x,cnt});
else jt->Y+=cnt;
}
void del( map<lli,lli> &m, lli x,lli cnt=1)
{
auto jt=m.find(x);
if(jt->Y<=cnt) m.erase(jt);
else jt->Y-=cnt;
}
bool cmp(const ii &a,const ii &b)
{
return a.X<b.X||(a.X==b.X&&a.Y<b.Y);
}
const lli mod = 1000000007L;
// const lli maxN = 1000000007L;
lli T,n,i,j,k,in,cnt,l,r,u,v,x,y;
lli m;
string s;
vector<vi> e;
lli A,B;
//priority_queue < ii , vector < ii > , CMP > pq;// min priority_queue .
lli dfs(lli u,lli p)
{
if(p!=-1&&sz(e[u])==1)
return 1;
vi b;
lli cnt=0;
for(auto x:e[u])
{
if(x==p)
continue;
b.pb(dfs(x,u));
cnt++;
}
dbg(u,p,e[u],b);
if(p==-1&&cnt%2)
A++;
A+=cnt/2;
if(p==-1&&sz(b)%2)
b.pb(0);
else if(p!=-1&&sz(b)%2==0)
b.pb(0);
sort(all(b));
dbg(b,B);
if(b.back()>B)
A=INF;
auto chk=[b,B](const lli m)-> bool {
lli i=0,j=sz(b)-1;
if(i==m)
i++;
if(j==m)
j--;
while(i<j)
{
if(b[i]+b[j]>B)
return false;
i++;j--;
if(i==m)
i++;
if(j==m)
j--;
}
return true;
};
lli l=-1,r=sz(b);
while(r-l>1)
{
const lli m=(r+l)/2;
if(chk(m))
r=m;
else
l=m;
}
return b[r]+1;
}
int main(void) {
ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
// freopen("txt.in", "r", stdin);
// freopen("txt.out", "w", stdout);
// cout<<std::fixed<<std::setprecision(35);
// cin>>T;while(T--)
{
cin>>n;
e.resize(n);
fo(i,n-1)
{
cin>>u>>v;
u--;v--;
e[u].pb(v);
e[v].pb(u);
}
if(n==2)
{
cout<<"1 1"<<endl;
return 0;
}
lli rt=0;
fo(rt,n)
{
if(sz(e[rt])!=1)
continue;
break;
}
B=INF;
dfs(rt,-1);
dbg(A,B);
const lli noA=A;
lli l=0,r=INF;
while(r-l>1)
{
B=(l+r)/2;
A=0;
dfs(rt,-1);
dbg(B,A,noA);
if(A<=noA)
r=B;
else
l=B;
}
cout<<noA<<" "<<r<<endl;
} aryanc403();
return 0;
}
Submission Info
Submission Time |
|
Task |
F - Christmas Tree |
User |
aryanc403 |
Language |
C++ (GCC 9.2.1) |
Score |
0 |
Code Size |
4114 Byte |
Status |
WA |
Exec Time |
882 ms |
Memory |
21048 KB |
Compile Error
./Main.cpp: In function ‘lli dfs(lli, lli)’:
./Main.cpp:114:17: warning: capture of variable ‘B’ with non-automatic storage duration
114 | auto chk=[b,B](const lli m)-> bool {
| ^
./Main.cpp:86:11: note: ‘lli B’ declared here
86 | lli A,B;
| ^
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
0 / 900 |
Status |
|
|
Set Name |
Test Cases |
Sample |
s1.txt, s2.txt, s3.txt |
All |
01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 35.txt, 36.txt, 37.txt, 38.txt, 39.txt, 40.txt, 41.txt, 42.txt, 43.txt, 44.txt, 45.txt, 46.txt, 47.txt, 48.txt, 49.txt, 50.txt, 51.txt, 52.txt, 53.txt, 54.txt, 55.txt, 56.txt, 57.txt, 58.txt, 59.txt, 60.txt, 61.txt, 62.txt, 63.txt, 64.txt, 65.txt, 66.txt, 67.txt, 68.txt, 69.txt, 70.txt, 71.txt, 72.txt, s1.txt, s2.txt, s3.txt |
Case Name |
Status |
Exec Time |
Memory |
01.txt |
AC |
654 ms |
9168 KB |
02.txt |
AC |
642 ms |
9168 KB |
03.txt |
AC |
665 ms |
9180 KB |
04.txt |
AC |
643 ms |
9176 KB |
05.txt |
AC |
819 ms |
21048 KB |
06.txt |
AC |
806 ms |
21044 KB |
07.txt |
AC |
771 ms |
12612 KB |
08.txt |
AC |
781 ms |
14656 KB |
09.txt |
AC |
769 ms |
14392 KB |
10.txt |
AC |
795 ms |
15448 KB |
11.txt |
AC |
405 ms |
10140 KB |
12.txt |
AC |
406 ms |
10112 KB |
13.txt |
AC |
403 ms |
10120 KB |
14.txt |
AC |
416 ms |
10148 KB |
15.txt |
AC |
623 ms |
9184 KB |
16.txt |
AC |
623 ms |
9176 KB |
17.txt |
AC |
645 ms |
8904 KB |
18.txt |
AC |
645 ms |
8908 KB |
19.txt |
AC |
648 ms |
8888 KB |
20.txt |
AC |
641 ms |
8912 KB |
21.txt |
AC |
648 ms |
8916 KB |
22.txt |
AC |
669 ms |
10280 KB |
23.txt |
AC |
769 ms |
14180 KB |
24.txt |
AC |
749 ms |
16876 KB |
25.txt |
AC |
632 ms |
9120 KB |
26.txt |
AC |
617 ms |
9184 KB |
27.txt |
AC |
653 ms |
8956 KB |
28.txt |
AC |
661 ms |
8924 KB |
29.txt |
AC |
648 ms |
8912 KB |
30.txt |
AC |
642 ms |
8904 KB |
31.txt |
AC |
650 ms |
9100 KB |
32.txt |
WA |
661 ms |
10492 KB |
33.txt |
AC |
786 ms |
19676 KB |
34.txt |
AC |
794 ms |
18944 KB |
35.txt |
AC |
626 ms |
9148 KB |
36.txt |
AC |
561 ms |
9748 KB |
37.txt |
AC |
641 ms |
9176 KB |
38.txt |
AC |
682 ms |
8892 KB |
39.txt |
AC |
646 ms |
8904 KB |
40.txt |
AC |
639 ms |
8912 KB |
41.txt |
AC |
656 ms |
8908 KB |
42.txt |
AC |
684 ms |
9964 KB |
43.txt |
AC |
882 ms |
16040 KB |
44.txt |
AC |
720 ms |
15436 KB |
45.txt |
AC |
644 ms |
9184 KB |
46.txt |
AC |
632 ms |
9152 KB |
47.txt |
AC |
664 ms |
9176 KB |
48.txt |
AC |
651 ms |
8908 KB |
49.txt |
AC |
645 ms |
8868 KB |
50.txt |
AC |
654 ms |
8912 KB |
51.txt |
AC |
664 ms |
8900 KB |
52.txt |
AC |
670 ms |
9964 KB |
53.txt |
AC |
741 ms |
14768 KB |
54.txt |
AC |
740 ms |
14448 KB |
55.txt |
WA |
490 ms |
11248 KB |
56.txt |
WA |
503 ms |
11216 KB |
57.txt |
AC |
510 ms |
11232 KB |
58.txt |
AC |
511 ms |
11172 KB |
59.txt |
AC |
515 ms |
12612 KB |
60.txt |
WA |
478 ms |
11548 KB |
61.txt |
AC |
497 ms |
13916 KB |
62.txt |
AC |
488 ms |
12656 KB |
63.txt |
AC |
492 ms |
13184 KB |
64.txt |
AC |
691 ms |
16036 KB |
65.txt |
AC |
604 ms |
14896 KB |
66.txt |
AC |
699 ms |
17996 KB |
67.txt |
AC |
3 ms |
3532 KB |
68.txt |
AC |
3 ms |
3532 KB |
69.txt |
AC |
2 ms |
3452 KB |
70.txt |
AC |
2 ms |
3388 KB |
71.txt |
WA |
2 ms |
3472 KB |
72.txt |
AC |
3 ms |
3460 KB |
s1.txt |
AC |
5 ms |
3456 KB |
s2.txt |
AC |
2 ms |
3452 KB |
s3.txt |
AC |
2 ms |
3524 KB |