Submission #1259813

#TimeUsernameProblemLanguageResultExecution timeMemory
1259813cpdreamerWorld Map (IOI25_worldmap)C++20
86 / 100
60 ms5604 KiB
#include "worldmap.h" #include<bits/stdc++.h> using namespace std; typedef long long ll; #define V vector #define pb push_back #define all(v) v.begin(),v.end() const long long MOD=1e9+7; #define P pair #define F first #define S second void file() { freopen("input.txt","r",stdin); freopen("output.txt","w",stdout); } V<int>adj[41]; V<int>t[41]; bool vis[41]; V<int>v; void dfs(int n) { vis[n]=true; for (auto u:adj[n]) { if (!vis[u]) { t[u].pb(n); t[n].pb(u); dfs(u); } } } void dfs1(int n,int p) { v.pb(n); for (auto u:t[n]) { if (u==p)continue; dfs1(u,n); } if (p!=-1) { v.pb(p); } } std::vector<std::vector<int>> create_map(int N, int M, std::vector<int> A, std::vector<int> B) { for (int i=0;i<=N;i++) { adj[i].clear(); t[i].clear(); vis[i]=false; } v.clear(); for (int i=0;i<M;i++) { adj[A[i]].pb(B[i]); adj[B[i]].pb(A[i]); } dfs(1); dfs1(1,-1); V<int>vp; set<int>st; V<int>p(N+1); int x=1; for (auto u:v) { if (st.count(u)) { vp.pb(u); } else { st.insert(u); p[u]=x; x=3-x; for (int j=0;j<2;j++) { vp.pb(u); } } } int sz=(int)vp.size(); V<V<int>>grid; for (int i=0;i<sz;i++) { grid.pb(vp); } V<int>c(N+1,0); for (int i=0;i<M;i++) { int id=-1; for (int j=0;j<sz;j++) { if (vp[j]==A[i]) { id=j; break; } } grid[2*c[A[i]]+p[A[i]]][id]=B[i]; if (id>0) { grid[2*c[A[i]]+p[A[i]]][id-1]=A[i]; } while (id>1) { if (vp[id-1]==vp[id-2]) { break; } grid[2*c[A[i]]+p[A[i]]][id-2]=vp[id-1]; id--; } c[A[i]]++; } return grid; }

Compilation message (stderr)

worldmap.cpp: In function 'void file()':
worldmap.cpp:13:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   13 |     freopen("input.txt","r",stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
worldmap.cpp:14:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   14 |     freopen("output.txt","w",stdout);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...