QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#248935 | #7178. Bishops | EWDEHSAMSWATERMELON# | WA | 0ms | 3640kb | C++20 | 4.5kb | 2023-11-11 22:53:45 | 2023-11-11 22:53:45 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
//#define int long long
using pii = pair <int, int>;
#define ff first
#define ss second
#define sz(x) ((int) (x).size())
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
template <typename T1, typename T2>
void mxr(T1& a, const T2& b) {
if (b > a) {
a = b;
}
}
template <typename T1, typename T2>
void mnr(T1& a, const T2& b) {
if (b < a) {
a = b;
}
}
const int K = 330;
signed main() {
ios_base::sync_with_stdio(false);
#ifdef BUY
freopen("inputik.txt", "r", stdin);
freopen("outputik.txt", "w", stdout);
#else
cin.tie(nullptr);
#endif
auto solve = [](auto& solve, int n, int m) -> int {
if (n > m) {
swap(n, m);
}
if (n == 1) {
return m;
}
if (n == 0) {
return 0;
}
if (n == m) {
return 2 * n - 2;
}
if (n % 2 && m % n == 0) {
return n + m - 1;
}
if (m % n == 0) {
return (m / n) * n + n - 2;
}
int r = m % n;
if (r + 1 == n) {
return solve(solve, r + 1, n) + n * (m / n);
}
return solve(solve, n, m % n) + n * (m / n);
};
int n, m;
cin >> n >> m;
cout << solve(solve, n, m);
// for (int n = 1; n < 100; ++n) {
// for (int m = n; m < 100; ++m) {
//
// // i + j
// // i + (m - j - 1)
// int diag1 = (n + m - 1);
// int diag2 = (n + m - 1) * 2;
// vector <vector <int> > g(n * m);
// for (int i = 0; i < n; ++i) {
// for (int j = 0; j < m; ++j) {
// g[i + j].push_back((i + (m - j - 1)));
// }
// }
// int u = 1;
// vector <int> used(diag1);
// vector <int> mt(diag1, -1);
// auto kuhn = [&](auto& kuhn, int cur) -> bool {
// if (used[cur] == u) {
// return false;
// }
// used[cur] = u;
// for (auto to : g[cur]) {
// if (mt[to] == -1) {
// mt[to] = cur;
// return true;
// }
// }
// for (auto to : g[cur]) {
// if (kuhn(kuhn, mt[to])) {
// mt[to] = cur;
// return true;
// }
// }
// return false;
// };
// for (int i = 0; i < diag1; ++i) {
// kuhn(kuhn, i);
// ++u;
// }
// int res1 = (diag1 - count(all(mt), -1));
// vector <string> v(n, string(m, '.'));
// for (int l = 0; l < diag1; ++l) {
// if (mt[l] != -1) {
// int r = mt[l];
// //x + (m - y - 1) = l
// //x + y = r
// //2 * y - m + 1 = r - l
// int j = (r - l - 1 + m) / 2;
// int i = r - j;
// v[i][j] = '#';
// }
// }
//// for (auto i : v) {
//// cout << i << "\n";
//// }
// auto solve = [&](auto& solve, int n, int m) -> int {
// if (n > m) {
// swap(n, m);
// }
// if (n == 1) {
// return m;
// }
// if (n == 0) {
// return 0;
// }
// if (n == m) {
// return 2 * n - 2;
// }
// if (n % 2 && m % n == 0) {
// return n + m - 1;
// }
// if (m % n == 0) {
// return (m / n) * n + n - 2;
// }
// int r = m % n;
// if (r + 1 == n) {
// return solve(solve, r + 1, n) + n * (m / n);
// }
// return solve(solve, n, m % n) + n * (m / n);
// };
// int res2 = solve(solve, n, m);
// if (res1 != res2) {
// cout << res1 << " ";
// cout << res2 << "\n";
// cout << "PIZDA\n";
// cout << n << " " << m << "\n";
// for (auto i : v) {
// cout << i << "\n";
// }
// cout << "\n\n";
// cout << endl;
// }
// }
// }
}
详细
Test #1:
score: 0
Wrong Answer
time: 0ms
memory: 3640kb
input:
2 5
output:
6
result:
wrong output format Unexpected end of file - int32 expected