Submission #2702775
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
using i64 = long long;
#define rep(i,s,e) for(int (i) = (s);(i) <= (e);(i)++)
vector<vector<int>> G;
i64 X[100];
i64 Y[100];
int dx[] = {1,-1,0,0};
int dy[] = {0,0,1,-1};
int vis[100];
void rec(int v,int n,int before_cnt){
vis[v] = 1;
int cnt = -1;
for(int to : G[v]){
if(vis[to]) continue;
cnt++;
if(cnt == (before_cnt ^ 1)) cnt++;
X[to] = X[v] + dx[cnt] * (1LL << n);
Y[to] = Y[v] + dy[cnt] * (1LL << n);
rec(to,n - 1,cnt);
}
}
char ans[100][100];
void rec2(int v,int n,int before_cnt){
ans[X[v]][Y[v]] = v + 'A';
vis[v] = 1;
int cnt = -1;
for(int to : G[v]){
if(vis[to]) continue;
int ddx = (X[to] - X[v] > 0 ? 1 : -1);
int ddy = (Y[to] - Y[v] > 0 ? 1 : -1);
if(X[to] == X[v]) ddx = 0;
if(Y[to] == Y[v]) ddy = 0;
for(int x = X[v] + ddx,y = Y[v] + ddy;x != X[to] || y != Y[to];x += ddx,y += ddy){
ans[x][y] = (ddx != 0 ? '|' : '-');
}
rec2(to,n - 1,cnt);
}
}
int main(){
rep(i,0,99){
rep(j,0,99) ans[i][j] = '.';
}
int N;
cin >> N;
G.resize(N);
rep(i,0,N - 2){
char c,d;
cin >> c >> d;
int a,b;
a = c - 'A';
b = d - 'A';
G[a].push_back(b);
G[b].push_back(a);
}
rec(0,N,10);
vector<i64> xs,ys;
rep(i,0,N - 1){
xs.push_back(X[i]);
ys.push_back(Y[i]);
}
sort(xs.begin(),xs.end());
sort(ys.begin(),ys.end());
xs.erase(unique(xs.begin(),xs.end()),xs.end());
ys.erase(unique(ys.begin(),ys.end()),ys.end());
rep(i,0,N - 1){
X[i] = lower_bound(xs.begin(),xs.end(),X[i]) - xs.begin();
Y[i] = lower_bound(ys.begin(),ys.end(),Y[i]) - ys.begin();
X[i] *= 2;
Y[i] *= 2;
vis[i] = 0;
}
rec2(0,N,10);
cout << 100 << " " << 100 << endl;
rep(i,0,99){
rep(j,0,99){
cout << ans[i][j];
}
cout << endl;
}
}
Submission Info
Submission Time |
|
Task |
D - グラフィカルグラフ |
User |
niuez |
Language |
C++14 (GCC 5.4.1) |
Score |
1100 |
Code Size |
1950 Byte |
Status |
AC |
Exec Time |
2 ms |
Memory |
256 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
1100 / 1100 |
Status |
|
|
Set Name |
Test Cases |
Sample |
0_01, 0_02 |
All |
0_01, 0_02, 1_03, 1_04, 1_05, 1_06, 1_07, 1_08, 1_09, 1_10, 1_11, 1_12, 1_13, 1_14, 1_15, 1_16, 1_17, 1_18, 1_19, 1_20, 1_21, 1_22, 1_23, 1_24, 1_25, 1_26, 1_27, 1_28, 1_29, 1_30, 1_31, 1_32, 1_33, 1_34, 1_35, 1_36, 1_37, 1_38, 1_39, 1_40, 1_41, 1_42, 1_43, 1_44, 1_45, 1_46, 1_47, 1_48, 1_49, 1_50, 1_51, 1_52 |
Case Name |
Status |
Exec Time |
Memory |
0_01 |
AC |
2 ms |
256 KB |
0_02 |
AC |
2 ms |
256 KB |
1_03 |
AC |
2 ms |
256 KB |
1_04 |
AC |
2 ms |
256 KB |
1_05 |
AC |
2 ms |
256 KB |
1_06 |
AC |
2 ms |
256 KB |
1_07 |
AC |
2 ms |
256 KB |
1_08 |
AC |
2 ms |
256 KB |
1_09 |
AC |
2 ms |
256 KB |
1_10 |
AC |
2 ms |
256 KB |
1_11 |
AC |
2 ms |
256 KB |
1_12 |
AC |
2 ms |
256 KB |
1_13 |
AC |
2 ms |
256 KB |
1_14 |
AC |
2 ms |
256 KB |
1_15 |
AC |
2 ms |
256 KB |
1_16 |
AC |
2 ms |
256 KB |
1_17 |
AC |
2 ms |
256 KB |
1_18 |
AC |
2 ms |
256 KB |
1_19 |
AC |
2 ms |
256 KB |
1_20 |
AC |
2 ms |
256 KB |
1_21 |
AC |
2 ms |
256 KB |
1_22 |
AC |
2 ms |
256 KB |
1_23 |
AC |
2 ms |
256 KB |
1_24 |
AC |
2 ms |
256 KB |
1_25 |
AC |
2 ms |
256 KB |
1_26 |
AC |
2 ms |
256 KB |
1_27 |
AC |
2 ms |
256 KB |
1_28 |
AC |
2 ms |
256 KB |
1_29 |
AC |
2 ms |
256 KB |
1_30 |
AC |
2 ms |
256 KB |
1_31 |
AC |
2 ms |
256 KB |
1_32 |
AC |
2 ms |
256 KB |
1_33 |
AC |
2 ms |
256 KB |
1_34 |
AC |
2 ms |
256 KB |
1_35 |
AC |
2 ms |
256 KB |
1_36 |
AC |
2 ms |
256 KB |
1_37 |
AC |
2 ms |
256 KB |
1_38 |
AC |
2 ms |
256 KB |
1_39 |
AC |
2 ms |
256 KB |
1_40 |
AC |
2 ms |
256 KB |
1_41 |
AC |
2 ms |
256 KB |
1_42 |
AC |
2 ms |
256 KB |
1_43 |
AC |
2 ms |
256 KB |
1_44 |
AC |
2 ms |
256 KB |
1_45 |
AC |
2 ms |
256 KB |
1_46 |
AC |
2 ms |
256 KB |
1_47 |
AC |
2 ms |
256 KB |
1_48 |
AC |
2 ms |
256 KB |
1_49 |
AC |
2 ms |
256 KB |
1_50 |
AC |
2 ms |
256 KB |
1_51 |
AC |
2 ms |
256 KB |
1_52 |
AC |
2 ms |
256 KB |