# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1250799 | alex0152 | World Map (IOI25_worldmap) | C++20 | 3 ms | 584 KiB |
#include <bits/stdc++.h>
using namespace std;
vector<int>adj[41];
int grad[41],x,y,z,cnt,dist[41];
void dfs(int node,int parent)
{
dist[cnt]=node;
cnt++;
for(auto it : adj[node])
if(it!=parent)
dfs(it,node);
}
vector<vector<int>>create_map(int n, int m,vector<int> a, vector<int> b)
{
for(int i=1; i<=n; ++i)
grad[i]=0,adj[i].clear();
cnt=0;
for(int i=0; i<a.size(); ++i)
{
adj[a[i]].push_back(b[i]);
adj[b[i]].push_back(a[i]);
grad[a[i]]++;
grad[b[i]]++;
}
for(int i=1; i<=n; ++i)
if(grad[i]==1)
x=i;
dfs(x,0);
vector<vector<int>>mp(n,vector<int>(n));
if(m==n-1)
{
for(int i=0; i<n; ++i)
{
z=dist[i];
x=i;
y=0;
for(; x>=0 && y<n; x--,y++)
mp[x][y]=z;
}
for(int i=0; i<n; ++i)
for(int j=0; j<n; ++j)
if(!mp[i][j])
mp[i][j]=z;
return mp;
}
else if(m==n*(n-1)/2)
{
vector<vector<int>>mp(2*n,vector<int>(2*n));
int act=-1;
for(int i=0; i<n; ++i)
{
act++;
for(int j=0; j<n*2; ++j)
{
mp[act][j]=i+1;
}
act++;
for(int j=0; j<n; ++j)
{
mp[act][j]=j+1;
}
for(int j=n; j<n*2; ++j)
{
mp[act][j]=j-n+1;
}
}
return mp;
}
}
컴파일 시 표준 에러 (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... |