제출 #900533

#제출 시각아이디문제언어결과실행 시간메모리
900533abcvuitunggioLongest Trip (IOI23_longesttrip)C++17
70 / 100
15 ms608 KiB
#include "longesttrip.h" #include <bits/stdc++.h> using namespace std; vector <int> longest_trip(int N, int D){ if (D>1){ deque <int> q={0}; if (!are_connected({0},{1})) q.push_back(2); q.push_back(1); for (int i=q.size();i<N;i++) if (are_connected({i},{q.front()})) q.push_front(i); else q.push_back(i); vector <int> res; for (int i:q) res.push_back(i); return res; } vector <int> a,b; a.push_back(0); b.push_back(1); for (int i=2;i<N;i++){ if (are_connected({a.back()},{i})){ a.push_back(i); continue; } if (are_connected({b.back()},{i})){ b.push_back(i); continue; } reverse(b.begin(),b.end()); for (int i:b) a.push_back(i); b={i}; } if (a.size()<b.size()) swap(a,b); vector <int> x={0,a.size()-1},y={0,b.size()-1}; for (int i:x) for (int j:y) if (are_connected({a[i]},{b[j]})){ if (!i) reverse(a.begin(),a.end()); if (j) reverse(b.begin(),b.end()); for (int k:b) a.push_back(k); return a; } for (int i=0;i<b.size();i++) if (are_connected(a,{b[i]})){ for (int j=0;j<a.size();j++) if (are_connected({a[j]},{b[i]})){ vector <int> c; for (int k=(j+1)%a.size();c.size()<a.size();k=(k+1)%a.size()) c.push_back(a[k]); for (int k=i;c.size()<a.size()+b.size();k=(k+1)%b.size()) c.push_back(b[k]); return c; } } return a; }

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

longesttrip.cpp: In function 'std::vector<int> longest_trip(int, int)':
longesttrip.cpp:39:31: warning: narrowing conversion of '(a.std::vector<int>::size() - 1)' from 'std::vector<int>::size_type' {aka 'long unsigned int'} to 'int' [-Wnarrowing]
   39 |     vector <int> x={0,a.size()-1},y={0,b.size()-1};
      |                       ~~~~~~~~^~
longesttrip.cpp:39:31: warning: narrowing conversion of '(a.std::vector<int>::size() - 1)' from 'std::vector<int>::size_type' {aka 'long unsigned int'} to 'int' [-Wnarrowing]
longesttrip.cpp:39:48: warning: narrowing conversion of '(b.std::vector<int>::size() - 1)' from 'std::vector<int>::size_type' {aka 'long unsigned int'} to 'int' [-Wnarrowing]
   39 |     vector <int> x={0,a.size()-1},y={0,b.size()-1};
      |                                        ~~~~~~~~^~
longesttrip.cpp:39:48: warning: narrowing conversion of '(b.std::vector<int>::size() - 1)' from 'std::vector<int>::size_type' {aka 'long unsigned int'} to 'int' [-Wnarrowing]
longesttrip.cpp:51:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   51 |     for (int i=0;i<b.size();i++)
      |                  ~^~~~~~~~~
longesttrip.cpp:53:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   53 |             for (int j=0;j<a.size();j++)
      |                          ~^~~~~~~~~
#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...