제출 #1274418

#제출 시각아이디문제언어결과실행 시간메모리
1274418nthvnRabbit Carrot (LMIO19_triusis)C++20
63 / 100
59 ms6824 KiB
#include "bits/stdc++.h" using namespace std; #define int long long #define LOG(n) (63 - __builtin_clzll((n))) #define fi first #define se second #define pii pair<int,int> #define all(x) x.begin(), x.end() #define sz(x) (int)x.size() #define pb push_back #define ll long long const int N = 2e5+5; int n,m,a[N]; int dp[N], pos[N]; struct BIT{ int bit[N]; BIT(){ memset(bit,0x3f,sizeof(bit)); } void update(int i, int x){ for(;i;i-=i&-i) bit[i]= min(bit[i],x); } int get(int i){ int ans =1e9; for(;i<=n+1;i+=i&-i) ans=min(ans,bit[i]); return ans; } }bit; void precalc(){ vector<int> v; for(int i=1;i<=n;i++){ v.pb(a[i]-(i+1)*m); } sort(all(v)); for(int i=1;i<=n+1;i++){ pos[i]= lower_bound(all(v), a[i]-(i+1)*m)-v.begin()+1; } } signed main(){ ios_base::sync_with_stdio(NULL); cin.tie(NULL); if(fopen("TASK.INP", "r")){ freopen("TASK.INP", "r", stdin); freopen("TASK.OUT", "w", stdout); } cin>>n>>m; for(int i=1;i<=n;i++) cin>>a[i]; if(a[1]>m){ dp[1]=1; a[1]=m; } precalc(); bit.update(pos[1], dp[1]-2); // cerr<<"\n"; for(int i=2;i<=n+1;i++){ dp[i]= bit.get(pos[i]) +i; bit.update(pos[i], dp[i]-(i+1)); } cout<<dp[n+1]; }

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

triusis.cpp: In function 'int main()':
triusis.cpp:47:24: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   47 |                 freopen("TASK.INP", "r", stdin);
      |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
triusis.cpp:48:24: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   48 |                 freopen("TASK.OUT", "w", stdout);
      |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...