이번 주말 USACO 하고 싶었는데 다른 게 정말 많네
https://www.acmicpc.net/problem/1731
1731번: 추론
등차가 정수인 등차수열 (어떤 수에 차례대로 일정한 수를 더해서 이루어지는 수열) 은 2개의 숫자로 나타낼 수 있다. P는 수열의 첫 번째 수이고, Q는 그 다음수가 되기 위해 바로 전의 수에 더해
www.acmicpc.net

풀이
마지막 뒤 세 가지 수만 알고 있으면 된다.
두 간격의 길이가 같다면 등차수열이다. 마지막 수에 해당 간격을 더한 값을 출력한다.
아니라면 등비수열이다. 마지막 수에 해당 비율을 곱한 값을 출력한다.
시간 복잡도 : O(N)
소요 시간 : 1분
아쉬운 점 : 없다
전체적인 감상 : 앞의 수는 포기한다...
/* basic setup {{{ */ #include<bits/stdc++.h> #define ff first #define ss second #define pb push_back #define sz(x) ((int)x.size()) #define all(x) x.begin(),x.end() #define compress(x) sort(all(x)), x.erase(unique(all(x)), x.end()) #define fast_io ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0) using namespace std; typedef long long ll; typedef pair<int,int> pii; typedef pair<ll,ll> pll; typedef const int ci; const int MOD = 1e9+7; const int INF = 0x3f3f3f3f; const ll LINF = 0x3f3f3f3f3f3f3f3f; /*}}}*/ int main(){ fast_io; int n, a[3]; cin>>n; for(int i=0;i<n-3;i++){ cin>>a[0]; } for(int i=0;i<3;i++){ cin>>a[i]; } if(a[0]-a[1] == a[1]-a[2]){ cout<<a[2]+(a[2]-a[1]); } else{ cout<<a[2]*(a[2]/a[1]); } cout<<'\n'; }
'백준 문제 해설' 카테고리의 다른 글
백준 4714 Lunacy (0) | 2022.11.13 |
---|---|
백준 16099 Large Sport Facility (0) | 2022.11.12 |
백준 3056 007 (0) | 2022.11.11 |
백준 19851 버거운 버거 (0) | 2022.11.10 |
백준 4179 불! (0) | 2022.11.08 |
백준 24751 Betting (0) | 2022.11.08 |
백준 15749 Snow Boots (0) | 2022.11.06 |
백준 25704 출석 이벤트 (0) | 2022.11.05 |