제출 #195645

#제출 시각아이디문제언어결과실행 시간메모리
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;
}

컴파일 시 표준 에러 (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...