aboutsummaryrefslogtreecommitdiff
path: root/works/life/algorithm-contest-3/code
diff options
context:
space:
mode:
Diffstat (limited to 'works/life/algorithm-contest-3/code')
-rw-r--r--works/life/algorithm-contest-3/code/1.cpp16
-rw-r--r--works/life/algorithm-contest-3/code/2.cpp106
-rw-r--r--works/life/algorithm-contest-3/code/3.cpp22
-rw-r--r--works/life/algorithm-contest-3/code/4.cpp34
-rw-r--r--works/life/algorithm-contest-3/code/5.cpp52
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;
-}