Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // 1358 TIMUS
- #include <iostream>
- #include <cstdio>
- #include <vector>
- #include <algorithm>
- #include <set>
- #include <map>
- #include <cmath>
- #include <ctime>
- #include <cstdlib>
- using namespace std;
- #define pi 3.1415926535897932384626433832795
- int n;
- vector <vector <int> > g;
- vector <bool> b(1001, false);
- vector <int> x, y, h;
- void dfs(int v, int px, int py)
- {
- b[v] = true;
- x[v] = px;
- y[v] = py;
- int cnt = 0, j = 0;
- for (int i = 0; i < g[v].size(); i++)
- if (!b[g[v][i]]) cnt++;
- for (int i = 0; i < g[v].size(); i++)
- if (!b[g[v][i]])
- {
- int alpha = 2 * pi / j;
- dfs(g[v][i], round(cos(alpha) * cnt), round(sin(alpha) * cnt));
- j++;
- }
- };
- int main()
- {
- scanf("%d", &n);
- g.resize(n);
- x.resize(n);
- y.resize(n);
- for (int i = 0; i < n - 1; i++){
- int u, v;
- scanf("%d%d", &u, &v);
- --u; --v;
- g[u].push_back(v);
- g[v].push_back(u);
- }
- dfs(0, 0, 0);
- for (int i = 0; i < n; i++)
- cout << x[i] << " " << y[i] << "\n";
- return 0;
- }
Add Comment
Please, Sign In to add comment