Submission #195645

#TimeUsernameProblemLanguageResultExecution timeMemory
195645T0p_Stove (JOI18_stove)C++14
100 / 100
35 ms3052 KiB
#include<bits/stdc++.h> using namespace std; #define pb push_back struct data{ int val, pos; bool operator < (const data & o) const{ return val > o.val; } }; int arr[100100], mark[100100]; vector<data> v; int main(){ int n, k; scanf(" %d %d",&n,&k); for(int i=1 ; i<=n ; i++) scanf(" %d",&arr[i]); if(k >= n){ printf("%d\n",n); return 0; } for(int i=2 ; i<=n ; i++) v.pb({arr[i] - arr[i-1], i}); sort(v.begin(), v.end()); k--; long long ans = 0; mark[1] = 1; for(int i=0 ; i<k ; i++) mark[v[i].pos] = 1; long long hval = arr[1]; for(int i=2 ; i<=n ; i++){ if(mark[i]){ ans += arr[i-1] - hval + 1; hval = arr[i]; } } ans += arr[n] - hval + 1; printf("%lld\n",ans); return 0; }

Compilation message (stderr)

stove.cpp: In function 'int main()':
stove.cpp:18:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf(" %d %d",&n,&k);
  ~~~~~^~~~~~~~~~~~~~~~
stove.cpp:19:33: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  for(int i=1 ; i<=n ; i++) scanf(" %d",&arr[i]);
                            ~~~~~^~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...