| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1338804 | po_rag526 | Burza (COCI16_burza) | C++20 | 37 ms | 988 KiB |
#include<bits/stdc++.h>
using namespace std;
bitset<1<<20> dp[410];
int dep[410],k,CC,in[410],out[410];
vector<int>adj[410];
vector<pair<int,int>>go[410];
void dfs(int n,int p){
dep[n]=dep[p]+1;
in[n]=CC;
if(dep[n]==k){
out[n]=++CC;
return;
}
for(auto x:adj[n])
if(x-p)
dfs(x,n);
out[n]=CC;
}
signed main(){
cin.tie(0)->sync_with_stdio(0);
int n;
cin>>n>>k;
if(k*k>=n){
cout<<"DA\n";
return 0;
}
for(int i=1;i<n;i++){
int a,b;
cin>>a>>b;
adj[a].push_back(b);
adj[b].push_back(a);
}
dep[0]=-1;
dfs(1,0);
dp[0][0]=1;
for(int i=2;i<=n;i++)
if(dep[i])
go[in[i]].push_back({dep[i]-1,out[i]});
for(int i=0;i<CC;i++)
for(int j=0;j<(1<<k);j++)
if(dp[i][j])
for(auto [d,o]:go[i])
if(!(j&1<<d))
dp[o][j+(1<<d)]=1;
cout<<(dp[CC].count()?"DA\n":"NE\n");
}| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
