제출 #632932

#제출 시각아이디문제언어결과실행 시간메모리
632932minhnhatnoeBrunhilda’s Birthday (BOI13_brunhilda)C++14
80.32 / 100
296 ms80312 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int MAXN = 1e7+10; vector<int> dist; vector<int> step; void build_dist(int m){ dist.resize(MAXN); vector<int> prs(m); for (int i=0; i<m; i++) cin >> prs[i]; sort(prs.begin(), prs.end()); prs.resize(unique(prs.begin(), prs.end()) - prs.begin()); for (int x: prs){ for (int i=x-1; i<MAXN; i+=x){ dist[i] = x-1; } } for (int i=MAXN-2; i>=0; i--){ dist[i] = max(dist[i], dist[i+1]-1); } } void build_step(){ step.reserve(MAXN); step.push_back(0); for (int i=1; i<MAXN && dist[i]; i++){ step.push_back(step[i - dist[i]] + 1); } } signed main(){ cin.tie(0)->sync_with_stdio(0); int m, q; cin >> m >> q; build_dist(m); build_step(); for (int i=0; i<q; i++){ int val; cin >> val; if (val >= step.size()){ cout << "oo\n"; } else{ cout << step[val] << "\n"; } } }

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

brunhilda.cpp: In function 'int main()':
brunhilda.cpp:38:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   38 |         if (val >= step.size()){
      |             ~~~~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...