結果
問題 | No.799 赤黒かーどげぇむ |
ユーザー |
![]() |
提出日時 | 2019-03-21 04:55:10 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 1,585 bytes |
コンパイル時間 | 900 ms |
コンパイル使用メモリ | 98,300 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-09-19 01:22:55 |
合計ジャッジ時間 | 1,592 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 20 |
ソースコード
#include <iostream>#include <iomanip>#include <vector>#include <set>#include <unordered_set>#include <map>#include <unordered_map>#include <queue>#include <deque>#include <stack>#include <algorithm>#include <numeric>#include <string>#include <sstream>#include <cmath>#include <cstring>#include <assert.h>#include <utility>#include <tuple>#include <array>#include <bitset>#include <cstdlib>using int64 = long long;template <typename T = int>struct Range {struct RangeIterator {T i, step;RangeIterator(T i, T step): i{i}, step{step} {}T& operator*() { return i; }RangeIterator& operator++() {i += step;return *this;}bool operator!=(const RangeIterator& rhs) const {return (step > 0 && i < rhs.i) || (step < 0 && i > rhs.i);}};T start, stop, step;Range(T start, T stop, T step): start{start}, stop{stop}, step{step} {}Range(T start, T stop): Range(start, stop, 1) {}Range(T stop): Range(0, stop, 1) {}RangeIterator begin() const { return RangeIterator(start, step); }RangeIterator end() const { return RangeIterator(stop, step); }};int main() {std::cin.tie(nullptr);std::ios::sync_with_stdio(false);int a, b, c, d;std::cin >> a >> b >> c >> d;int ans = 0;for (const auto i : Range<>(a, b + 1)) {for (const auto j : Range<>(c, d + 1)) {if (i != j) {ans++;}}}std::cout << ans << std::endl;return 0;}