본문 바로가기

반응형

Round

[Codeforces] Round #559 (Div. 2) A ~ E 풀이 21.03.05 23:35 virtual 참가 / performance = 2391 A. A pile of stones (*800) +가 주어질 때는 돌이 1개 증가하고, -가 주어질 때는 돌이 1개 감소한다. 처음에 보유할 수 있는 돌은 임의로 정할 수 있고, 중간에 돌이 0개일 때 -가 들어오면 안 될 때, 최종적으로 가능한 최소 돌의 개수를 구하는 문제이다. 처음의 돌 수를 직접 정할 수 있으므로, 단순하게 -가 들어오는 경우, 만약 현재 돌이 0개이면 그대로 유지시켜주면 된다. 이 과정이 결국 처음의 돌 수를 1개 증가시키는 과정과 동일하다. [소스 코드] #include using namespace std; int main(void) { ios::sync_with_stdio(false); cin..
[Codeforces] Educational Round 102 A ~ E 풀이 2달 만에 본계로 참가했다. 부계로 계속 못 올라가는 게 현타 와서 마음을 다 비우고 본계로 했는데 약간 올랐다... 한동안 1800 퍼포 이상을 찍어본적이 없었는데 아이디에 적응하는 건가....? CF 1473A. Replacing Elements 배열의 어떤 원소를 다른 두 원소의 합으로 바꿀 수 있다. 이때, 배열의 모든 원소를 d 이하로 만들 수 있는지에 대한 문제이다. 기본적으로 주어지는 모든 원소가 d 이하이면 아무런 작업을 하지 않아도 된다. 만약 d보다 큰 원소가 하나 이상 존재한다면, 해당 원소를 바꿔주는 최적의 경우는 배열의 모든 원소 중 제일 작은 값 2개를 골라 바꿔주는 경우이므로, 배열을 오름차순으로 정렬하여 A[1] + A[2]가 d이하이면 YES이다. [소스코드] #includ..
Codeforces Round #690 (Div. 3) 풀이 A. Favorite Sequence 입력으로 문제의 그림과 같이 위치가 바뀐 수열이 들어온다. 다시 원래의 수열을 출력해주면 된다. (처음엔 바뀐 수열을 출력하라는 줄 알았다. 꽤나 비슷한 실수를 한 사람들이 많은 것 같다) #include using namespace std; int A[301]; int main(void) { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int T; cin >> T; while (T--) { int n; cin >> n; for (int i = 1; i > A[i]; for (int i = 1; i