Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 연동형 비례대표 계산 프로그램
- DZ60
- split keyboard
- 준연동형
- xiao yun
- Asahi super dry
- 12월 가결
- 우희열 명인 한산 불소곡주
- QMK
- 방송 화면에 키보드 띄우기
- i3wm
- Camera obscura #pinhole camera #room camera #방 카메라
- 대대포 블루
- 맥북 프로 16인치 M1 pro
- Orthogonal 키보드
- 막걸리 리뷰
- 스플릿 키보드 후기
- 해외맥주
- 맥주리뷰
- 막믈리에
- 선호 막걸리
- 맥북 프로 리뷰
- 카트라이더 매크로
- 키보드 화면
- 맥주 리뷰
- 비례대표제 계산
- 비례대표 계산 코드
- 막걸리
- 럭키팡
- 키보드 변천사
Archives
- Today
- Total
아 그게 뭐더라
코포 Mail.Ru Cup 2018 Round 2 - C번 본문
http://codeforces.com/contest/1055/problem/C
어제 간단한데 안풀려서 그냥 잤다.
http://codeforces.com/contest/1055/submission/45523903
#include <bits/stdc++.h> using namespace std; typedef long long LL; LL la, lb, ra, rb, ta, tb; int main() { cin >> la >> ra >> ta; cin >> lb >> rb >> tb; LL g = __gcd(ta, tb); if (la < lb) { swap(la, lb); swap(ra, rb); swap(ta, tb); } LL da = ra - la + 1, db = rb - lb + 1; LL ans = 0; if ((la - lb) % g == 0) { ans = min(da, db); } else { LL d = g - (la - lb) % g; ans = max(ans, min(db, da - d)); d = g - d; ans = max(ans, min(db - d, da)); } cout << ans << endl; }
#include<bits/stdc++.h> using namespace std; int a,b,c,x,y,z,g; int main() { cin>>a>>b>>c>>x>>y>>z; g=__gcd(c,z); cout<<max(min(max(b-a+1-((x-a)%g+g)%g,0),y-x+1),min(b-a+1,y-x+1-g+((x-a)%g+g)%g)); }
남의 코드를 봐도 나중에 다시 만들기 어려울 것 같아서 여기에 메모해 놓는다.
문제요약)
링크의 사진을 보면 됨.
풀이요약)
(주기 두개 gcd)는 두 주기가 한번 반복됨에 따라 한번씩 밀리는 칸의 갯수. (아마?)
이게 0이거나, (첫번째 ans 대입)
이걸로 시작지점 la, lb가 최대한 어긋나지 않도록 맞추거나 (두번째 ans 대입)
반대쪽 기준으로 시작지점 la, lb가 최대한 어긋나지 않도록 맞추거나 (세번째 ans 대입)
하는 것 같다.
'공부 > PS ' 카테고리의 다른 글
Codeforces Round #781 (Div. 2) (1) | 2022.04.17 |
---|---|
SCPC 2021 2라운드 풀기 (1) | 2021.10.21 |
SCPC 2021 1차 풀기 (1) | 2021.08.04 |
세그먼트 트리 중간값 의식의 흐름 BOJ 9426 (2) | 2019.05.18 |
카카오 코드 페스티벌 잘 못푼 이야기 (0) | 2018.08.05 |
Comments