제출 #1263146

#제출 시각아이디문제언어결과실행 시간메모리
1263146nerrrmin세계 지도 (IOI25_worldmap)C++20
0 / 100
10 ms1608 KiB
#include "worldmap.h" #define pb push_back #include <bits/stdc++.h> using namespace std; const int maxn = 55; int n, m; vector < pair < int, int > > g[maxn]; int col[maxn]; vector < int > path; int used[maxn]; int mark[500], seen[maxn]; void dfs(int beg, int from) { path.pb(beg); used[beg] = 1; for(auto &[nb, i]: g[beg]) { if(used[nb]) { continue; } if(nb == from) { continue; } dfs(nb, beg); path.pb(beg); } } int butai[maxn]; std::vector<std::vector<int>> create_map(int N, int M, std::vector<int> A, std::vector<int> B) { assert(M >= N-1); n = N; m = M; path.clear(); for (int i = 1; i <= n; ++ i) used[i] = 0; for (int i = 0; i <= 240; ++ i) mark[i] = 0; for (int i = 0; i <= 2*n; ++ i) g[i].clear(); for (int i = 0; i < m; ++ i) { g[A[i]].pb({B[i], i}); g[B[i]].pb({A[i], i}); } dfs(1, 0); int szp = path.size(); for (int i = 0; i < n; ++ i) seen[i] = 0; for (int i = 0; i <= 600; ++ i) butai[i] = 0; vector < int > pat; for (int j = 0; j < szp; ++ j) { int ver = path[j]; pat.pb(ver); if(!seen[ver]) { pat.pb(ver); butai[pat.size()-1] = ver; pat.pb(ver); seen[ver] = 1; } } int szpat = pat.size(); std::vector<std::vector<int>> ans(szpat, std::vector<int>(szpat, 0)); for (int i = 0; i < szpat; ++ i) ans[0][i] = pat[i]; for (int j = 0; j < szpat; ++ j) { if(!butai[j]) { for(int i = 1; i < szpat; ++ i) ans[i][j] = ans[i-1][j]; } else { int i = 1; int v = butai[j]; for (auto &[x, iiii]: g[v]) { ans[i][j] = x; i ++; ans[i][j] = v; i ++; } while(i < szpat) { ans[i][j] = v; i ++; } } } return ans; }

컴파일 시 표준 에러 (stderr) 메시지

worldmap.cpp: In function 'std::vector<std::vector<int> > create_map(int, int, std::vector<int>, std::vector<int>)':
worldmap.cpp:56:18: warning: iteration 55 invokes undefined behavior [-Waggressive-loop-optimizations]
   56 |         butai[i] = 0;
      |         ~~~~~~~~~^~~
worldmap.cpp:55:23: note: within this loop
   55 |     for (int i = 0; i <= 600; ++ i)
      |                     ~~^~~~~~
worldmap.cpp:56:18: warning: 'void* __builtin_memset(void*, int, long unsigned int)' writing 2404 bytes into a region of size 220 overflows the destination [-Wstringop-overflow=]
   56 |         butai[i] = 0;
      |         ~~~~~~~~~^~~
worldmap.cpp:32:5: note: destination object 'butai' of size 220
   32 | int butai[maxn];
      |     ^~~~~
#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...