Submission #1255704

#TimeUsernameProblemLanguageResultExecution timeMemory
1255704garam1732세계 지도 (IOI25_worldmap)C++20
Compilation error
0 ms0 KiB
//#include "worldmap.h" #include <bits/stdc++.h> using namespace std; #define ff first #define ss second #define bl ' ' #define endl '\n' #define all(v) (v).begin(), (v).end() #define comp(v) (v).erase(unique(all(v)), (v).end()) #define lbd(v,x) lower_bound(all(v), (x))-(v).begin() #define ubd(v,x) upper_bound(all(v), (x))-(v).begin() typedef long long ll; typedef pair<int, int> pi; typedef pair<pi, int> pii; typedef pair<int, pi> ipi; typedef pair<pi, pi> pipi; typedef pair<ll, ll> pll; const int MAXN = 100100*5; const ll MOD = 1e9+7; const ll INF = 1e9+10; vector<int> adj[44]; vector<int> v; bool vst[44]; void dfs(int here) { v.push_back(here); vst[here]=1; for(int there:adj[here]) { if(vst[there]) continue; dfs(there); v.push_back(here); } } std::vector<std::vector<int>> create_map(int N, int M, std::vector<int> A, std::vector<int> B) { std::vector<std::vector<int>> ans(4 * N, std::vector<int>(4 * N)); for(int i=1;i<=N;i++) adj[i].clear(), vst[i]=0; for(int i=0;i<M;i++) { adj[A[i]].push_back(B[i]); adj[B[i]].push_back(A[i]); } v.clear(); dfs(1); assert(v.size() <= 2*N); for(int i=1, y=2; i<v.size(); i+=2, y+=4) { for(int x=0;x<4*N;x+=2) ans[x][y]=v[i]; for(int x=1;x<4*N;x+=2) ans[x][y-1]=v[i]; for(int x=1;x<4*N;x+=2) ans[x][y+1]=v[i]; for(int x=1, t=0;x<4*N;x+=2) { if(t<adj[v[i]].size()) { ans[x][y]=adj[v[i]][t]; t++; } else ans[x][y]=v[i]; } } for(int i=0, y=0; i<v.size(); i+=2, y+=4) { for(int x=1;x<4*N;x+=2) ans[x][y]=v[i]; if(i>0) for(int x=0;x<4*N;x+=2) ans[x][y-1]=v[i]; if(i+1<v.size()) for(int x=0;x<4*N;x+=2) ans[x][y+1]=v[i]; for(int x=0, t=0;x<4*N;x+=2) { if(t<adj[v[i]].size()) { ans[x][y]=adj[v[i]][t]; t++; } else ans[x][y]=v[i]; } } for(int i=0;i<4*N;i++) for(int x=0;x<4*N;x++) if(!ans[x][i]) ans[x][i]=v.back(); return ans; } // grader int main() { int T; assert(1 == scanf("%d", &T)); std::vector<int> Nt(T), Mt(T); std::vector<std::pair<std::vector<int>, std::vector<int>>> AB; for (int t = 0; t < T; ++t) { assert(2 == scanf("%d %d", &Nt[t], &Mt[t])); int M = Mt[t]; std::vector<int> A(M), B(M); for (int i = 0; i < Mt[t]; i++) { assert(2 == scanf("%d %d", &A[i], &B[i])); } AB.push_back(make_pair(A, B)); } fclose(stdin); std::vector<std::vector<std::vector<int>>> Ct; for (int t = 0; t < T; t++) { int N = Nt[t], M = Mt[t]; std::vector<int> A = AB[t].first, B = AB[t].second; auto C = create_map(N, M, A, B); Ct.push_back(C); } for (int t = 0; t < T; t++) { auto& C = Ct[t]; int P = (int)C.size(); std::vector<int> Q(P); for (int i = 0; i < P; ++i) Q[i] = (int)C[i].size(); printf("%d\n", P); for (int i = 0; i < P; ++i) printf("%d%c", Q[i], " \n"[i + 1 == P]); printf("\n"); for (int i = 0; i < P; i++) { for (int j = 0; j < Q[i]; j++) { printf("%d%c", C[i][j], " \n"[j + 1 == Q[i]]); } } if (t < T - 1) printf("\n"); } fclose(stdout); return 0; }

Compilation message (stderr)

/usr/bin/ld: /tmp/ccjRBX8k.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccj36DsI.o:worldmap.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status