스웨덴의 대학교에서 개최하는 대회의 본선 이전에 연습하는 대회이다.

연습 대회이긴 하지만 문제 질도 괜찮고, 난이도도 상당하기에 후기를 올린다.

sitstar2021.contest.codeforces.com/group/1HLBM0lmlk/contests

 

Login - Codeforces

 

sitstar2021.contest.codeforces.com

여기서 대회를 볼 수 있다.(대회 진행중에는 볼 수 없는 것으로 알고 있다)

일단 문제는 12문제인데, 나는 그 중 8개를 풀었다.

8개 모두 풀이를 작성하고, 짧은 것은 이어서, 긴 것은 따로 풀이를 포스팅해 링크를 여기에 모아두도록 하겠다.

에디토리얼은 영어로 작성했다

시작하자!

 

 

A~D = ilc12345-080.tistory.com/57

 

SIT Contest A, B, C, D Editorial

A. Arithmetic sitstar2021.contest.codeforces.com/group/1HLBM0lmlk/contest/309373/problem/A Login - Codeforces sitstar2021.contest.codeforces.com (sol) You need to print 'Yes' if a*b==c or b*c==a or..

ilc12345-080.tistory.com

 

나머지는 더 쓸 예정..

쓰는대로 업데이트하겠습니다

대회 시작 시간이 굉장히 특이하길래(보통은 밤 11시 35분 정도에 시작하지만 이번 대회는 시작 시간이 오후 4시 5분이었다) 냉큼 참가했다.
대회 시작부터 문제를 풀었고, 30분정도 풀다가 일이 있어 그만두었다. 그리고 대회 끝나기 약 30분 정도 전에 들어와서 15분 정도 풀다 접었다.
총 1문제를 풀었는데, 결론적으로 보면 1문제, 그것도 A번에 45분을 쏟았다.
Div.2 한문제 푸는데 45분 걸리는 흑우
서론은 이쯤 하고, 풀이로 들어가자.

 

A. Prison Break

Problem Statement

There is a prison that can be represented as a rectangular matrix with n rows and m columns. Therefore, there are n⋅m prison cells. There are also n⋅m prisoners, one in each prison cell. Let's denote the cell in the i-th row and the j-th column as (i,j).

There's a secret tunnel in the cell (r,c), that the prisoners will use to escape! However, to avoid the risk of getting caught, they will escape at night.

Before the night, every prisoner is in his own cell. When night comes, they can start moving to adjacent cells. Formally, in one second, a prisoner located in cell (i,j) can move to cells (i−1,j) , (i+1,j) , (i,j−1) , or (i,j+1), as long as the target cell is inside the prison. They can also choose to stay in cell (i,j).

The prisoners want to know the minimum number of seconds needed so that every prisoner can arrive to cell (r,c) if they move optimally. Note that there can be any number of prisoners in the same cell at the same time.

 

Input

The first line contains an integer t (1t10^4), the number of test cases.

Each of the next t lines contains four space-separated integers n, m, r, c (1rn10^9, 1cm10^9).

 

Output

Print t lines, the answers for each test case.

 

풀이

모든 방 안에 죄수가 꽉 차 있고, 죄수는 움직이지 않을 수도 있으므로 문제에서 구하고자 하는 시간은 탈출구에서 가장 멀리 떨어져 있는 죄수가 탈출구로 이동하는 시간과 같다.

탈출구에서 가장 멀리 떨어져 있는 죄수는 항상 감옥의 4 꼭짓점(귀퉁이)에 있음을 알 수 있다.

따라서 4 귀퉁이에서 탈출구까지 가는 최단거리를 비교해서 가장 큰 값을 출력하면 된다.

 

#include<stdio.h>
int max(int a, int b){if(a>=b){return a;}else{return b;}}
int main()
{
    int a,b,c,d,t;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d %d %d %d",&a,&b,&c,&d);
        printf("%d\n",max(max(max(c+d-2,a-c+b-d),a-c+d-1),c-1+b-d));
    }
}

이걸 45분 고민했다

[00:12 Wrong Answer on pretest 1]

[00:14 Wrong Answer on pretest 2]

[00:16 Wrong Answer on pretest 2]

[00:51 Wrong Answer on pretest 2]

[01:00 Wrong Answer on pretest 1]

[01:12 Wrong Answer on pretest 2]

[01:34 Pretests passed, Accepted(9)]

 

 

 

이런 실수는 하지 말자.... ㅠㅠ

B번은 업솔빙 예정

'대회 후기 > Codeforces' 카테고리의 다른 글

SIT STAR Contest 2021 practice  (0) 2021.02.08
SIT Contest A, B, C, D Editorial  (0) 2021.02.08
Codeforces Round 690 (Div.3) 후기  (0) 2020.12.20
Codeforces Round #688 (Div. 2) 후기  (0) 2020.12.14
Codeforces Round #686 (Div.3) 후기  (0) 2020.11.25

안녕하세요?

오늘은 OJ 추천 2탄을 해보려고 합니다.

사실 지난번 OJ 추천 글에 있었던 OJ들 외에도 다양한 OJ들이 있습니다.

다른 OJ(해외 OJ 포함)을 정리해 보도록 하겠습니다!^^

 

 

1. Codeforces(통칭 코포)

이 채점 사이트는 굉장히 유명합니다.

외국 사이트라 한글이 없는 것이 단점입니다.

그런데 번역한다고 무작정 구글번역기를 돌리면 문제를 못풉니다;;

러시아어 지원되니까 영어 못하면 러시아어로 푸세요

그래서 조금 이해가 느리더라도 영어로 읽고 풀어야 합니다.

어짜피 ICPC등의 큰 대회는 문제 지문이 영어로 주어지므로 지문이 영어던 한국어던 문제를 빨리 풀 수 있는 능력이 필요하고, 이 능력을 키우기에 적합한 사이트입니다.

사실 이 사이트의 묘미는 문제를 푸는 것이 아니라 대회에 참가하는 것입니다.

1주에 적어도 2~3번은 대회가 열리고, 일반인도 참가할 수 있습니다.

대회는 Div 1, Div 2, Div 3로 나누어지는데 가입 직후에는 Div 2, Div 3밖에 참가를 못합니다.

대회에서 좋은 성적을 내어 아이디 색깔이 보라색이 되면 Div 1도 참가 가능합니다.

www.codeforces.com

 

Codeforces

 

codeforces.com

링크타고 들어가 보세용

 

 

2. Atcoder

이 사이트도 위에 소개해드린 사이트와 마찬가지로 영어로 문제를 풀어야 합니다.

일본어도 지원됩니당

이 사이트도 codeforces와 마찬가지로 대회에 초점이 맞춰져 있습니다.

1주에 1번정도 대회가 열리고, 일반인도 참가할 수 있습니다.

대회는 Atcoder Begginer contest, Atcoder Regular contest, Atcoder Grand contest 3개로 나뉩니다.(통칭 ABC, ARC, AGC 라고 부릅니다.)

ABC는 굉장히 쉽고, ARC는 코포 Div 2보다 약간 어렵고, AGC는 코포 Div 1보다 약간 쉬운 난이도를 가지고 있습니다.

그래봤자 저는 ABC문제도 다 못풉니다

www.atcoder.com

이 사이트입니다

 

 

3. Project Euler

신개념 코딩 사이트

이 사이트는 다른 사이트들과 굉장히 많이 다릅니다.

수학 문제가 주어지고, 굉장히 큰 수에 대한 답(노가다가 불가능한 정도)을 찾는 문제입니다.

이를 프로그래밍을 이용해서 답을 찾아내는 문제인데, 코드를 제출하는 것이 아닌 답을 써서 제출하는 방식입니다.

그런데 몇몇 문제는 걍 수식으로 풀려서(...) 계산 잠깐 하고 답 내서 맞는 경우도 있습니다.

한국 사이트와 영어 사이트가 있는데, 한국 사이트는 번역이 잘 되어있는 반면에 문제 수가 적고, 스코어보드가 없습니다.(저는 한국 사이트에서 활동중)

euler.synap.co.kr (한국사이트)

projecteuler.net (외국사이트)

 

 

4. Dovelet

요즘은 잘 쓰이지 않는(?) 사이트 같습니다.

일단 딱 사이트에 들어가자마자 느끼실텐데, 오래된 티가 팍팍 나고, 인터페이스가 (저한테는) 좀 불편합니다.

문제는 괜찮은 편인데, 돈을 내야 합니다.

무조건 돈을 내야 하는건 아니고, 1~30계단과 옥상 중 처음에는 준회원으로 1~3계단과 옥상의 문제만 풀 수 있습니다.

돈을 내면 정회원이 되어 4~30계단의 문제를 풀 수 있습니다.

돈을 내지 않고 4~30계단의 문제를 풀려면 엄청 문제를 많이 풀어서 전체순위 30등 이내로 들어가 쭈~욱 회원이 되는 방법이 있습니다.

www.dovelet.com

 

http://www.dovelet.com

 

www.dovelet.com

 

5. Algospot

최근에 알게 된 사이트입니다.

이 사이트의 커다란 특징으로는, 130문제만 풀어도 순위판 1페이지 진출입니다.

당연하게도, 쉬운 문제는(제 기준) 풀어본 결과 7개밖에 없습니다.(...)

www.algospot.com

 

algospot.com :: 알고스팟에 오신 것을 환영합니다!

 

www.algospot.com

 

 

여기까지입니다.

감사합니다!^^

 

'C언어 공부' 카테고리의 다른 글

중첩 for문  (0) 2020.11.26
OJ 추천  (1) 2020.03.28
C 언어 연습 IDE 추천  (4) 2020.03.27
배열  (1) 2020.03.26
반복문  (0) 2020.03.26

오늘은 codeforces Div 3 후기겸 풀이를 올려보려고 한다.

사실 코포 대회는 주로 저녁 11시 35분에서 새벽 1시 35분까지 열리기 때문에(러시아에서 열리는 대회라 그렇다) 12시에 칼같이 자는 나에게는 적합한 대회가 아니다. (...)

그래도 재미삼아 A번이라도 풀기 위해 대회에 참가했다.(그리고 목표에 충실하게 A번만 풀고 빤스런했다)

그럼 본격적으로 풀이와 후기를 써본다.

A. Special Permutation

Problem Statement

You are given one integer n (n>1).

Recall that a permutation of length nn is an array consisting of nn distinct integers from 1 to n in arbitrary order. For example, [2,3,1,5,4] is a permutation of length 5, but [1,2,2] is not a permutation (2 appears twice in the array) and [1,3,4] is also not a permutation (n=3 but there is 4 in the array).

Your task is to find a permutation p of length n that there is no index i (1in) such that pi=i(so, for all i from 1 to n the condition pii should be satisfied).

You have to answer t independent test cases.

If there are several answers, you can print any. It can be proven that the answer exists for each n>1.

 

Input

The first line of the input contains one integer t (1t100) — the number of test cases. Then t test cases follow.

The only line of the test case contains one integer n (2n100) — the length of the permutation you have to find.

 

Output

For each test case, print n distinct integers p1,p2,,pn — a permutation that there is no index i (1i≤n) such that pi=i (so, for all i from 1 to n the condition pii should be satisfied).

 

If there are several answers, you can print any. It can be proven that the answer exists for each n>1.

 

풀이

쉽게 생각하면 쉽고, 어렵게 생각하면 어려운 문제이다.

문제를 번역하면 이렇다.

'n이 주어질 때 n의 순열 p1,p2,,pn pii 인 순열을 아무거나 출력하세요'

이를 더 간단하게 바꾸면 다음과 같다.

'n이 주어질 때 n의 교란순열중 하나를 출력하세요'

따라서 n의 순열 중 기본적인 것인 1, 2, ..., n 을 한칸씩 밀려쓴 순열을 출력하면 정답이 된다.

#include <stdio.h>
int main()
{
    int t,i;
    scanf("%d\n",&t);
    while(t--)
    {
        int a;
        scanf("%d",&a);
        for(i=2;i<=a;i++)
        {
            printf("%d ",i);
        }
        printf("1 ");
    }
    return 0;
}

[00:09 Wrong Answer on test 2]

[00:09 Wrong Answer on test 1]

[00:10 Accepted]

a가 홀수일 때와 짝수일 때를 굳이 나눠서 생각하다가 1틀을 하고, 마지막에 띄어쓰기가 없어서 또 1틀을 했다.

이런데서 실수하지 말자... ㅠㅠ

 

B번은 간단한 구현 문제로 보인다. 업솔빙 예정.

+ Recent posts