수학 22번 1초짜리 풀이
게시글 주소: https://wwww.orbi.kr/00065243227
/**
* author: pizzaroot
* created: 2023-11-19 02:14:54
**/
#include <bits/stdc++.h>
#define inf 0x3f3f3f3f
#define linf 0x3f3f3f3f3f3f3f3f
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
#define pb push_back
using namespace std;
typedef long long ll;
typedef vector<ll> vi;
typedef pair<ll, ll> pi;
double f(double x, double b, double c, double d) {
return x * x * x + b * x * x + c * x + d;
}
double fprime(double x, double b, double c) {
return 3 * x * x + 2 * b * x + c;
}
int main() {
ios::sync_with_stdio(0); cin.tie(0);
vector<pair<double, double>> cands;
for (double b = -10; b < 10; b += 0.02) {
for (double d = -10; d < 10; d += 0.02) {
double x = -1.0 / 4;
double c = -1.0 / 4 - 3 * x * x - 2 * b * x;
if (fprime(1.0 / 4, b, c) > 0.03) continue;
bool good = true;
for (int k = -50; k < 50; k++) {
if (f(k - 1, b, c, d) * f(k + 1, b, c, d) < -0.03) good = false;
}
if (good) {
cands.push_back({b, d});
}
}
}
for (auto &cd: cands) {
for (double b = cd.first - 2; b < cd.first + 2; b += 0.001) {
for (double d = cd.second - 2; d < cd.second + 2; d += 0.001) {
double x = -1.0 / 4;
double c = -1.0 / 4 - 3 * x * x - 2 * b * x;
if (fprime(1.0 / 4, b, c) > 0.0001) continue;
bool good = true;
for (int k = -5; k < 5; k++) {
if (f(k - 1, b, c, d) * f(k + 1, b, c, d) < -0.001) good = false;
}
if (good) {
cout << f(8, b, c, d) << '\n';
}
}
}
}
return 0;
}
1초만에 실행됨 ㄷㄷ
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
-
일반고라서 딱히 쓸게 없는데..... 뭐쓰시나요 다들
-
유니스트 면접 보고 왔습니다. 엄청 긴장될 줄 알았는데 네 엄청 긴장되더라구요....
-
UNIST 경쟁률이 110대여서 너무 불안해서 그러는데 9
제 성적으로 최초합은 안되나요?
-
수시 미스테리 0
제가 이번에 유니스트 탐구역량우수자전형 최초합에 장학금(누구나 다 주는거긴...
-
가군 성대 공학 나군 유니스트2승하길 비나이다.....여러분도 모두 3승하세여저는...
-
★ GIST(광주과기원)과 UNIST(울산과기대) 의 학비 3
[펌] 스쿨프레스 11/11일 기사‘대학 등록금’ 문제는 우리 사회가 안고 있는...
^오^