이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
#define int long long
const long long maxn = 1000 + 5;
const long long logn=25;
const long long mod=1e9+7;
int idx[maxn];
int s[maxn];
int n,m;
int kol;
int find_root(int x)
{
while(x!=idx[x])
{
idx[x]=idx[idx[x]];
x=idx[x];
}
return x;
}
bool is_in_u(int a,int b)
{
if(find_root(a)==find_root(b))return true;
return false;
}
void u2e(int i,int j)
{
int idx_i=find_root(i);
int idx_j=find_root(j);
if(s[idx_i]>=s[idx_j])
{
s[idx_i]+=s[idx_j];
idx[idx_j]=idx[idx_i];
}
else
{
s[idx_j]+=s[idx_i];
idx[idx_i]=idx[idx_j];
}
kol--;
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0);
/// freopen("conexidad.in", "r", stdin);
/// freopen("conexidad.out", "w", stdout);
cin>>n>>m;
kol=n;
for(int i=0;i<=n;i++)
{
idx[i]=i;
s[i]=1;
}
for(int i=0;i<m;i++)
{
int a,b;
cin>>a>>b;
if(!is_in_u(a,b))
{
u2e(a,b);
}
}
if(kol==2)
{
int V=find_root(1);
int sum=s[V];
if(m==(n*(n-1)/2)-sum*(n-sum))
{
cout<<"DA"<<endl;
return 0;
}
}
cout<<"NE"<<endl;
return 0;
}
| # | 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... |