diff options
Diffstat (limited to 'works/life/algorithm-contest-3/code')
-rw-r--r-- | works/life/algorithm-contest-3/code/1.cpp | 16 | ||||
-rw-r--r-- | works/life/algorithm-contest-3/code/2.cpp | 106 | ||||
-rw-r--r-- | works/life/algorithm-contest-3/code/3.cpp | 22 | ||||
-rw-r--r-- | works/life/algorithm-contest-3/code/4.cpp | 34 | ||||
-rw-r--r-- | works/life/algorithm-contest-3/code/5.cpp | 52 |
5 files changed, 0 insertions, 230 deletions
diff --git a/works/life/algorithm-contest-3/code/1.cpp b/works/life/algorithm-contest-3/code/1.cpp deleted file mode 100644 index 2c8ea1a..0000000 --- a/works/life/algorithm-contest-3/code/1.cpp +++ /dev/null @@ -1,16 +0,0 @@ -#include <iostream> - -int main() { - std::ios_base::sync_with_stdio(false); - std::cin.tie(nullptr); - - long long n; - std::cin >> n; - - while (n) { - std::cout << n << ' '; - n /= 3; - } - - return 0; -} diff --git a/works/life/algorithm-contest-3/code/2.cpp b/works/life/algorithm-contest-3/code/2.cpp deleted file mode 100644 index ad4c840..0000000 --- a/works/life/algorithm-contest-3/code/2.cpp +++ /dev/null @@ -1,106 +0,0 @@ -#include <algorithm> -#include <cstdio> -#include <vector> - -int ConvertYear(int x) { - if (x >= 60) - return 1900 + x; - return 2000 + x; -} - -bool CheckMonth(int x) { - if (x <= 0 && x >= 13) { - return false; - } - - return true; -} - -bool IsLeapYear(int y) { - if (y == 2000) - return false; - if (y % 4) - return false; - return true; -} - -int days[] = {0, 31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; - -bool CheckDay(int day, int month, int year) { - if (month == 2) { - const bool leap = IsLeapYear(year); - if (leap) { - return day >= 1 && day <= 29; - } else { - return day >= 1 && day <= 28; - } - } - - return day >= 1 && day <= days[month]; -} - -struct Date { - int year; - int month; - int day; -}; - -bool operator==(const Date &l, const Date &r) { - return l.year == r.year && l.month == r.month && l.day == r.day; -} - -bool operator<(const Date &l, const Date &r) { - if (l.year < r.year) - return true; - else if (l.year > r.year) - return false; - else if (l.month < r.month) - return true; - else if (l.month > r.month) - return false; - else if (l.day < r.day) - return true; - return false; -} - -bool Check(int year, int month, int day, Date *result) { - if (!CheckMonth(month)) - return false; - const auto y = ConvertYear(year); - if (!CheckDay(day, month, y)) - return false; - - result->year = y; - result->month = month; - result->day = day; - return true; -} - -int main() { - std::vector<Date> results; - - int a, b, c; - std::scanf("%d/%d/%d", &a, &b, &c); - - Date temp; - if (Check(a, b, c, &temp)) { - results.push_back(temp); - } - - if (Check(c, a, b, &temp)) { - results.push_back(temp); - } - - if (Check(c, b, a, &temp)) { - results.push_back(temp); - } - - results.erase(std::unique(results.begin(), results.end()), results.end()); - std::sort(results.begin(), results.end()); - - for (const auto &r : results) { - std::printf("%d-%02d-%02d\n", r.year, r.month, r.day); - } - - return 0; -} diff --git a/works/life/algorithm-contest-3/code/3.cpp b/works/life/algorithm-contest-3/code/3.cpp deleted file mode 100644 index 20abfa1..0000000 --- a/works/life/algorithm-contest-3/code/3.cpp +++ /dev/null @@ -1,22 +0,0 @@ -#include <iostream> - -int n, m; -long long f[31][31]; - -int main() { - std::cin >> n >> m; - - f[1][1] = 1; - - for (int r = 1; r <= n; r++) { - for (int c = 1; c <= m; c++) { - if (!(r == 1 && c == 1) && !(r % 2 == 0 && c % 2 == 0)) { - f[r][c] = f[r - 1][c] + f[r][c - 1]; - } - } - } - - std::cout << f[n][m]; - - return 0; -} diff --git a/works/life/algorithm-contest-3/code/4.cpp b/works/life/algorithm-contest-3/code/4.cpp deleted file mode 100644 index aebd735..0000000 --- a/works/life/algorithm-contest-3/code/4.cpp +++ /dev/null @@ -1,34 +0,0 @@ -#include <algorithm> -#include <iostream> -#include <numeric> - -int gcd(int a, int b) { return b ? gcd(b, a % b) : a; } - -int N; -int A[100010]; - -int main() { - std::ios_base::sync_with_stdio(false); - std::cin.tie(nullptr); - - std::cin >> N; - - for (int i = 0; i < N; i++) { - std::cin >> A[i]; - } - - std::sort(A, A + N); - - int g = A[1] - A[0]; - for (int i = 1; i < N - 1; i++) { - g = gcd(g, A[i + 1] - A[i]); - } - - if (g == 0) { - std::cout << N; - } else { - std::cout << (A[N - 1] - A[0]) / g + 1; - } - - return 0; -} diff --git a/works/life/algorithm-contest-3/code/5.cpp b/works/life/algorithm-contest-3/code/5.cpp deleted file mode 100644 index 8d70a55..0000000 --- a/works/life/algorithm-contest-3/code/5.cpp +++ /dev/null @@ -1,52 +0,0 @@ -#include <algorithm> -#include <iostream> - -int N, K; -long long A[100010]; - -long long M = 1000000009; - -int main() { - std::ios_base::sync_with_stdio(false); - std::cin.tie(nullptr); - - std::cin >> N >> K; - - for (int i = 0; i < N; i++) { - std::cin >> A[i]; - } - - std::sort(A, A + N); - - long long result = 1; - int left = 0, right = N - 1; - long long sign = 1; - int k = K; - - if (k % 2) { - result = A[N - 1]; - right--; - k--; - - if (result < 0) { - sign = -1; - } - } - - while (k) { - long long x = A[left] * A[left + 1], y = A[right] * A[right - 1]; - - if (x * sign > y * sign) { - result = x % M * result % M; - left += 2; - } else { - result = y % M * result % M; - right -= 2; - } - k -= 2; - } - - std::cout << result; - - return 0; -} |