제출 #283165

#제출 시각아이디문제언어결과실행 시간메모리
283165cgiosy새로운 문제 (COCI19_akvizna)C++17
130 / 130
56 ms2424 KiB
#pragma GCC optimize("Ofast")
#include <cstdio>
struct fn {
	double x;
	int j, c;
};
int cr(fn& a, fn& b) { return a.x!=b.x ? (a.j-b.j)/(a.x-b.x) : 0; }
int main() {
	int N, K;
	scanf("%d%d", &N, &K);
	double l=0, r=1+1e-10;

	int C[N+1];
	fn D[N+1];
	D[0]={};
	while(1) {
		bool last=r-l<1e-10;
		auto m=(l+r)/2;
		int k=0, s=0, e=0;
		C[0]=N;
		for(int i=1; i<=N && (last || k<=K); i++) {
			while(C[s]<i) s++;
			fn t{D[s].x+double(i-D[s].j)/i-m, i, k=D[s].c+1};
			while(s<e && C[e-1]>=(C[e]=cr(D[e], t))) e--;
			if(s==e) C[e]=cr(D[e], t);
			D[++e]=t, C[e]=N;
		}
		if(k==K || last) return!printf("%.9lf", D[e].x+K*m);
		(k>K?l:r)=m;
	}
}

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

akvizna.cpp: In function 'int main()':
akvizna.cpp:10:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   10 |  scanf("%d%d", &N, &K);
      |  ~~~~~^~~~~~~~~~~~~~~~
#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...
#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...
#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...
#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...