1. Roman and Browser https://codeforces.com/contest/1100/problem/Ab를 0부터 k-1까지 바꿔가면서 비교를 통해 최대 절대값을 찾아내면 됩니다. 직접 b+ik만 제외하면서 더하는 것이 쉽지 않기 때문에 전체 합을 구해놓고 b+ik의 원소를 빼는 형태로 구현했습니다. #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int n,k; cin >> n >> k; int Data[n]={0,}, initSum = 0; for (int i=0;i> Data[i]; initSum += Data[i]; } int output = 0; for (int b..
1. Integer Sequence Dividing https://codeforces.com/contest/1102/problem/A 처음에 임의의 원소를 받아서 차가 최소가 되도록 나눈다는 줄 알고 이상한 방향으로 고민했었습니다. 만약 그런 문제였다면 어떻게 풀어야 할 지 아직도 모르겠네요. 문제에서는 연속된 n개의 수에 대해서만 풀면 됩니다. 연속된 4개의 수가 x, x+1, x+2, x+3 이렇게 주어졌다면 A에다가 x와 x+3을 넣고 B에다가 x+1과 x+2를 넣으면 없는 걸로 생각할 수 있습니다. 그런 식으로 큰 쪽부터 네 개씩 덜어내면서 문제를 1,2,3 최대 세 개의 연속한 원소가 있는 형태로 바꿀 수 있어요. 이 형태의 출력은 그냥 resultArr라는 배열로 저장했습니다. 이게 최적인 이..
카잉 달력(BOJ)문제 자체는 쉽습니다. x에다가 M을 계속 더해가는 식으로 구현했는데 어디선가 자꾸 틀리네요. 다른 풀이 찾아서 따라써보고 이건 일단 포기했습니다. 반례 테스트 케이스를 준다면 좋을텐데 ㅜㅜㅜ여담으로, 극한의 효율성을 추구한다면 Extended Euclid Algorithm을 찾아써도 좋을 것 같아요. 최대공약수를 구하는 과정에서 문제에서 요구하는 값인 Bezout's coefficient를 자연스럽게 얻을 수 있기 때문입니다. #include int gcd(int a, int b){ if (b == 0){ return a; } else{ int r = a % b; return gcd(b,r); } } long long int lcm(int a, int b){ return a*b/gcd..