[Codeforces] Round #705 (Div. 2) A ~ D 풀이
21.03.06 23:05 Round #705 참가 (Rating 1740 -> 1855 / Performance = 2137) 대회 시간도 2시간 15분이고, 세터의 예전 라운드도 어려운 난이도였고, 점수 분포를 보고도 대충 어려울 거라고 예상은 했지만, C부터 이렇게 어려울 줄이야.... 대회 때 C, D 솔브수가 1000명이 안되었다. 2시간이 아니어서 다행히 D까지 풀 수 있었다. A. Anti-knapsack (*800) n과 k가 주어질 때, {1, 2, ..., n}의 부분집합 중에서, 합이 k가 되도록 원소 일부를 고를 수 없는 최대 부분집합을 구하는 문제이다. 일단, k+1 ~ n까지는 항상 포함시켜도 된다. 그리고, (k-1, 1) , (k-2, 2) ... 등의 쌍이 둘을 더하면 k가..
[Codeforces] Round #552 (Div. 3) A ~ E 풀이
21.01.11 12:30 virtual 참가 (1시간 20분) / performance = 1816 A. Restoring Three Numbers (*800) 입력으로 a+b, a+c, b+c, a+b+c가 랜덤 순서로 들어온다. 이를 다 더하면 3(a+b+c) 이므로, a+b+c의 값을 구해줄 수 있다. 따라서 구한 a+b+c의 값과 동일한 입력을 찾은 뒤, 해당 입력에서 나머지 세 입력을 빼주면 각각 a,b,c가 나온다. [소스 코드] #include using namespace std; using ll = long long; int main(void) { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); ll a, b, c, d..