# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
568422 | shahriarkhan | Sirni (COCI17_sirni) | C++14 | 3549 ms | 786432 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
using namespace std ;
const int MX = 1e7 + 5 ;
int nex[MX] ;
vector<pair<int,int> > val[MX] ;
struct dsu
{
vector<int> sz , par ;
void init(int n)
{
sz = vector<int> (n+2,0) ;
par = vector<int> (n+2,0) ;
for(int i = 1 ; i <= n ; ++i)
{
par[i] = i , sz[i] = 1 ;
}
}
int find_root(int a)
{
if(par[a]==a) return a ;
return par[a] = find_root(par[a]) ;
}
int union_edge(int u , int v)
{
int root_u = find_root(u) , root_v = find_root(v) ;
if(root_u==root_v) return 0 ;
if(sz[root_v]>sz[root_u]) swap(root_u,root_v) ;
sz[root_u] += sz[root_v] ;
par[root_v] = root_u ;
return 1 ;
}
};
int main()
{
int n ;
scanf("%d",&n) ;
int p[n+2] = {0} ;
long long ans = 0 ;
for(int i = 1 ; i <= n ; ++i)
{
scanf("%d",&p[i]) ;
nex[p[i]] = p[i] ;
}
for(int i = MX - 2 ; i >= 0 ; --i)
{
if(!nex[i]) nex[i] = nex[i+1] ;
}
dsu D ;
D.init(MX) ;
sort(p+1,p+n+1) ;
for(int i = 1 ; i <= n ; ++i)
{
if(p[i-1]==p[i]) continue ;
for(int j = p[i] ; j < MX ; j += p[i])
{
if(!nex[j+(j==p[i])]) continue ;
int rem = nex[j+(j==p[i])]%p[i] ;
val[rem].push_back({p[i],nex[j+(j==p[i])]}) ;
}
}
for(int i = 0 ; i < MX ; ++i)
{
for(pair<int,int> &f : val[i])
{
int st = D.union_edge(f.first,f.second) ;
if(st) ans += i ;
}
}
printf("%lld\n",ans) ;
return 0 ;
}
컴파일 시 표준 에러 (stderr) 메시지
# | 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... |