Submission #1354938

#TimeUsernameProblemLanguageResultExecution timeMemory
1354938scalifrastico_098World Map (IOI25_worldmap)C++20
0 / 100
0 ms344 KiB
#include "worldmap.h"
#include <bits/stdc++.h>
using namespace std; 
#define ll long long
#define F first
#define S second
vector<vector<int>> ans, kl, tr; vector<vector<char>> w;
queue<int> h; vector<char> vis; vector<int> dist, li, ns, qh; int t3=0, k=1;
vector<vector<pair<int, int>>> t;
void dfs(int u, int p)
{
  vis[u]=1; ans[0][t3]=u; t3++; h.push(u); int l=t3, r=l; 
  for(auto x: kl[u])
  {
    if(vis[x])continue; w[u][x]=0; w[x][u]=0; 
    dist[x]=dist[u]+1; tr[u].push_back(x); dfs(x, u); ans[0][t3]; t3++;
  }
  li.push_back(u); if(r==l) return;
  for(int i=l; i<r; i++){ans[k][i]=u;ans[k+1][i]=u;}
  for(int i=l+1; i<r; i+=2)t[u].push_back({k+1, i}); k+=2;
}
vector<vector<int>> create_map(int n, int m, vector<int> a, vector<int> b) {
  kl.assign(n+1, vector<int>()); vector<int> o(n+1, 0), uw; 
  ns.assign(n+1, 0); qh.assign(n+1, 0); t3=0;
  vis.assign(n+1, 0); tr.resize(n+1); dist.assign(n+1, 0);
  while(!h.empty())h.pop(); w.assign(n+1, vector<char>(n+1));
  for(ll i=0; i<m; i++)
  {
    kl[a[i]].push_back(b[i]); kl[b[i]].push_back(a[i]);
    w[a[i]][b[i]]=1; w[b[i]][a[i]]=1;
  } 
  ans.assign(2*n, vector<int>(2*n)); int j=0;
  t.resize(n+1); dfs(1, 0);
  for(auto i: li)
  {
    for(int j=1; j<=n; j++)
    {
      if(!w[i][j])continue; w[i][j]=0; w[j][i]=0; if(t[j].empty())continue;
      if(t[j].back().F!=2*n-1)
      {
        ans[t[j].back().F+1][t[j].back().S]=ans[t[j].back().F][t[j].back().S];
      }
      ans[t[j].back().F+1][t[j].back().S]=i; t[j].pop_back();
    }
  }
  for(int i=1; i<ans.size(); i++)
  {
    for(int j=0; j<ans.size(); j++){if(ans[i][j]==0)ans[i][j]=ans[i-1][j];}
  }
  for(int i=0; i<2*n; i++)ans[i][2*n-1]=ans[i][2*n-2];
  return ans;
}

Compilation message (stderr)

worldmap.cpp: In function 'void dfs(int, int)':
worldmap.cpp:16:64: warning: ignoring return value of 'constexpr std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](size_type) [with _Tp = int; _Alloc = std::allocator<int>; reference = int&; size_type = long unsigned int]', declared with attribute 'nodiscard' [-Wunused-result]
   16 |     dist[x]=dist[u]+1; tr[u].push_back(x); dfs(x, u); ans[0][t3]; t3++;
      |                                                                ^
In file included from /usr/include/c++/13/vector:66,
                 from worldmap.h:1,
                 from worldmap.cpp:1:
/usr/include/c++/13/bits/stl_vector.h:1126:7: note: declared here
 1126 |       operator[](size_type __n) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~
#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...