제출 #1050386

#제출 시각아이디문제언어결과실행 시간메모리
1050386antonGlobal Warming (CEOI18_glo)C++17
100 / 100
182 ms26080 KiB
#include<bits/stdc++.h> using namespace std; #define int long long #define pii pair<int, int> int N, X; struct MaxTree{ int len = 1; vector<int> tr; MaxTree(int n){ while(len<n){ len*=2; } tr.resize(2*len); } void upd(int u){ for(u/=2; u>=1; u/=2){ tr[u] = max(tr[u*2], tr[u*2+1]); } } int get(int l, int r){ l += len; r+=len+1; int res = 0; for(; l<r; l/=2, r/=2){ if(l%2 ==1){ res = max(res, tr[l++]); } if(r%2 == 1){ res = max(res, tr[--r]); } } return res; } void set(int pos, int val){ pos+=len; tr[pos] = max(tr[pos], val); upd(pos); } }; int find_pos(int e, vector<int>& v){ int pos =0; for(int step = (1LL<<20); step>=1; step/=2){ if(pos+step<v.size() && v[pos+step]<=e){ pos+=step; } } return pos; } vector<int> vals; int lis(vector<pii>& v){ MaxTree low(vals.size()); MaxTree high(vals.size()); for(int i= 0; i<N; i++){ int best_high = max(high.get(0, v[i].first-1), low.get(0, v[i].second-1)); high.set(v[i].first, best_high+1); int best_low = low.get(0, v[i].first-1); low.set(v[i].first, best_low+1); } return high.get(0, vals.size()-1); } signed main(){ cin>>N>>X; vector<pii> t(N); vals.push_back(0); for(int i = 0; i<N; i++){ cin>>t[i].first; vals.push_back(t[i].first); vals.push_back(t[i].first+X); } sort(vals.begin(), vals.end()); for(int i = 0; i<N; i++){ t[i] ={find_pos(t[i].first, vals), find_pos(t[i].first+X, vals)}; } cout<<lis(t)<<endl; }

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

glo.cpp: In function 'long long int find_pos(long long int, std::vector<long long int>&)':
glo.cpp:51:20: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   51 |         if(pos+step<v.size() && v[pos+step]<=e){
      |            ~~~~~~~~^~~~~~~~~
#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...