(24313) (C++) 알고리즘 수업 – 점근적 표기법 1

https://www.acmicpc.net/problem/24313

문제

현재까지도 서준은 점근적 표기법을 강의하고 있다.
아버지께서 가르치신 내용을 학생들이 문제를 통해 이해했는지 확인해 봅시다.

다음과 같이 알고리즘에 걸리는 시간에 대한 O 표기법(big-O)을 정의해 보겠습니다.

O(g(n)) = {f(n) | 모든 n ≥ n0}에 대해 f(n) ≤ c × g(n)인 양의 상수 c 및 n0}

이 정의는 실제 O 표기법(https://en.wikipedia.org/wiki/Big_O_notation) 다를 수 있습니다.

기능 양의 정수 c,n0이 주어졌을 때 f(n) = a1n + a0이 O(n)의 정의를 만족하는지 알아봅시다.

기입

첫 번째 줄에는 함수 f(n)을 나타내는 정수 a1 및 a0이 제공됩니다.
(0 ≤ |ai| ≤ 100)

다음 줄에는 양의 정수 c가 주어집니다.
(1≤c≤100)

양의 정수 n0이 다음 줄에 지정됩니다.
(1 ≤ n0 ≤ 100)

누르다

에프(N), , n0O (N) 정의가 충족되면 1을, 그렇지 않으면 0을 반환합니다.

암호

#include <algorithm>
#include <cmath>
#include <iostream>
#include <map>
#include <set>
#include <vector>
using namespace std;

int a1, a2;
int c;
int n0;

int main(void) {
  cin >> a1 >> a2;
  cin >> c;
  cin >> n0;

	if(a2 <= n0*(c-a1) && (c-a1)>=0){
		cout << 1;
	}
	else{
		cout << 0;
	}

  return 0;
}

(c-a1)>=0을 자세히 살펴보십시오.

변수의 범위를 알고 문제를 해결