작성일 :

문제 링크

32209번 - 다음 달에 봐요

설명

이벤트를 순서대로 처리하며 문제 포럼의 남은 문제 수가 부족해지는지 확인하는 문제입니다.


접근법

현재 남은 문제 수를 누적하며, 문제가 추가되면 더하고 풀면 뺍니다.

음수가 되는 순간 해산이므로 Adios를 출력하고, 끝까지 버티면 See you next month를 출력합니다.


Code

C#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using System;

class Program {
  static void Main() {
    var q = int.Parse(Console.ReadLine()!);
    var cur = 0;
    for (var i = 0; i < q; i++) {
      var parts = Console.ReadLine()!.Split();
      var type = int.Parse(parts[0]);
      var val = int.Parse(parts[1]);
      if (type == 1) cur += val;
      else {
        cur -= val;
        if (cur < 0) {
          Console.WriteLine("Adios");
          return;
        }
      }
    }

    Console.WriteLine("See you next month");
  }
}

C++

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

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

  int q; cin >> q;
  int cur = 0;
  for (int i = 0; i < q; i++) {
    int type, val; cin >> type >> val;
    if (type == 1) cur += val;
    else {
      cur -= val;
      if (cur < 0) {
        cout << "Adios\n";
        return 0;
      }
    }
  }

  cout << "See you next month\n";

  return 0;
}