• LQDOJ
  • Trang chủ
  • Bài tập
  • Bài nộp
  • Thành viên
  • Kỳ thi
  • Nhóm
  • Giới thiệu
    • Status
    • Khóa học
    • Đề xuất ý tưởng
    • Proposal Problem
    • Proposal Contest
    • Tools
    • Báo cáo tiêu cực
    • Báo cáo lỗi

Tiếng Việt

Tiếng Việt
English

Đăng nhập

Đăng ký

ntt1506tam

  • Giới thiệu
  • Bài tập
  • Bài nộp

Rating
-
Bài tập
1
Điểm
1350
Rating #
-
Điểm #
28703

Giới thiệu

include <iostream>

include <set>

include <algorithm>

include <numeric>

using namespace std;

// Hàm tính GCD của hai số
int gcd(int a, int b) {
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
return a;
}

// Hàm tính GCD của tất cả các phần tử trong tập hợp
int gcd_of_set(const set<int>& s) {
if (s.empty()) return 1;
int result = *s.begin();
for (auto it = ++s.begin(); it != s.end(); ++it) {
result = gcd(result, *it);
if (result == 1) break; // Nếu GCD là 1, không cần tính tiếp
}
return result;
}

int main() {
int N;
cin >> N;

set<int> current_set;

for (int i = 0; i < N; ++i) {
    int t, x;
    cin >> t >> x;

    if (t == 1) {
        // Thao tác 1: Thêm số x vào tập hợp
        current_set.insert(x);
    } else if (t == 2) {
        // Thao tác 2: Loại bỏ số x khỏi tập hợp
        current_set.erase(x);
    }

    // Tính GCD của tập hợp hiện tại và in ra kết quả
    cout << gcd_of_set(current_set) << endl;
}

return 0;

}


«    »
Thứ 2
Thứ 3
Thứ 4
Thứ 5
Thứ 6
Thứ 7
CN
Ít
Nhiều

proudly powered by DMOJ| developed by LQDJudge team