제출 #626400

#제출 시각아이디문제언어결과실행 시간메모리
626400whynotshadow송신탑 (IOI22_towers)C++17
27 / 100
4048 ms1740 KiB
#include "towers.h" #include <bits/stdc++.h> //#include <cassert> //#include <cstdio> #define ll int //#include <vector> using namespace std; vector<ll>v; const ll N=1e5+9; const ll INF=1e9; ll tr[4*N],sz,szz,k,fll; void init(int N, std::vector<int> H) { for(auto to:H){ v.push_back(to); } k=0,fll=0; for(int i=1; i<N; i++){ if(v[i]>v[i-1]) szz=i; else fll=1; if(fll==1 && v[i-1]<=v[i]) k=1; } } int max_towers(int L, int R, int D) { ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0); if(k==0){ if(L<=szz && szz<=R && v[L]<=v[szz]-D && v[R]<=v[szz]-D) return 2; return 1; } ll curr=-1; ll mn=v[L],res=1; for(int i=L+1; i<=R; i++){ if(curr<0){ if(v[i]<mn) mn=v[i]; else if(v[i]-D>=mn) curr=v[i]; } else{ if(v[i]<=curr-D) res++,mn=v[i],curr=-curr; else if(v[i]>curr) curr=v[i]; } } return res; }
#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...