結果
| 問題 |
No.864 四方演算
|
| コンテスト | |
| ユーザー |
r1933
|
| 提出日時 | 2019-08-17 00:07:50 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 12 ms / 1,000 ms |
| コード長 | 1,826 bytes |
| コンパイル時間 | 1,550 ms |
| コンパイル使用メモリ | 166,824 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-09-25 10:49:46 |
| 合計ジャッジ時間 | 2,474 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 27 |
ソースコード
#include <bits/stdc++.h>
// Begin {{{
using namespace std;
#define all(x) x.begin(), x.end()
#define rep(i, n) for (i64 i = 0; i < (n); ++i)
#define reps(i, s, n) for (i64 i = (s); i <= (n); ++i)
using i64 = int_fast64_t;
using pii = pair<i64, i64>;
template<class A, class B>
inline bool chmax(A &a, const B &b) { return b > a ? a = b, 1 : 0; }
template<class A, class B>
inline bool chmin(A &a, const B &b) { return b < a ? a = b, 1 : 0; }
constexpr int INF = 0x3f3f3f3f;
constexpr i64 LINF = 0x3f3f3f3f3f3f3f3fLL;
constexpr int MOD = int(1e9) + 7;
//IN
void IN() {}
template<class Head, class... Tail>
void IN(Head&& head, Tail&&... tail) {
cin >> head;
IN(forward<Tail>(tail)...);
}
//OUTS
template<size_t> struct int_{};
template<class Tuple, size_t Pos>
ostream& print_tuple(ostream& out, const Tuple& t, int_<Pos>) {
out << get<tuple_size<Tuple>::value-Pos>(t) << " ";
return print_tuple(out, t, int_<Pos-1>());
}
template <class Tuple>
ostream& print_tuple(ostream& out, const Tuple& t, int_<1>) {
return out << get<tuple_size<Tuple>::value-1>(t);
}
template<class... Args>
ostream& operator<<(ostream& out, const tuple<Args...>& t) {
return print_tuple(out, t, int_<sizeof...(Args)>());
}
#define OUTS(...) cout << make_tuple(__VA_ARGS__) << "\n";
//OUTL
void OUTL() {}
template<class Head, class... Tail>
void OUTL(Head&& head, Tail&&... tail) {
cout << head << "\n";
OUTL(forward<Tail>(tail)...);
}
// }}} End
i64 cnt(i64 n, i64 e) {
if (e > n * 2) return 0;
if (e > n) return (n * 2 + 1) - e;
return e - 1;
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
i64 n, k;
IN(n, k);
i64 res = 0;
for (i64 i = 1; i * i <= k; ++i) {
if (k % i == 0) {
res += cnt(n, i) * cnt(n, k / i) * (i * i == k ? 1 : 2);
}
}
OUTL(res);
return 0;
}
r1933