작성일 :

문제 링크

14568번 - 2017 연세대학교 프로그래밍 경시대회

설명

사탕을 세 사람에게 조건에 맞게 나눠주는 경우의 수를 구하는 문제입니다.


접근법

택희는 짝수 개를 받아야 하므로 2개부터 2씩 증가시키며 확인합니다.

남은 사탕을 영훈이와 남규가 나누는데, 남규는 영훈이보다 2개 이상 많아야 합니다.

따라서 남은 사탕이 r개일 때, 영훈이가 받을 수 있는 경우의 수는 (r - 2) / 2가 됩니다.


Code

C#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
using System;

class Program {
  static void Main() {
    var n = int.Parse(Console.ReadLine()!);
    var cnt = 0;
    for (var a = 2; a <= n; a += 2) {
      var r = n - a;
      if (r <= 3) continue;
      cnt += (r - 2) / 2;
    }
    Console.WriteLine(cnt);
  }
}

C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <bits/stdc++.h>
using namespace std;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);

  int n;
  if (!(cin >> n)) return 0;
  int cnt = 0;
  for (int a = 2; a <= n; a += 2) {
    int r = n - a;
    if (r <= 3) continue;
    cnt += (r - 2) / 2;
  }
  cout << cnt << "\n";

  return 0;
}