結果
問題 | No.799 赤黒かーどげぇむ |
ユーザー |
![]() |
提出日時 | 2019-11-24 20:43:51 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 5,904 bytes |
コンパイル時間 | 1,940 ms |
コンパイル使用メモリ | 174,780 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-10-12 04:22:08 |
合計ジャッジ時間 | 2,366 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 20 |
ソースコード
#ifdef LOCAL#pragma GCC optimize ("O0")#else#pragma GCC optimize ("O3")#endif#include <bits/stdc++.h>using namespace std;using namespace std::placeholders;using ll = long long;using VI = vector<int>;using VVI = vector<vector<int>>;using VVVI = vector<vector<vector<int>>>;using VLL = vector<ll>;using VVLL = vector<vector<ll>>;using VVVLL = vector<vector<vector<ll>>>;using VB = vector<bool>;using VVB = vector<vector<bool>>;using PII = pair<int, int>;using PLLI = pair<ll, int>;const int INF = 1e9 + 7;const int MOD = INF;const ll INF_LL = 1e18 + 7;#define __overload3(_1, _2, _3, name,...) name#define rep(...) __overload3(__VA_ARGS__, repFromUntil, repUntil, repeat)(__VA_ARGS__)#define repeat(times) repFromUntil(__name, 0, times)#define repUntil(name, times) repFromUntil(name, 0, times)#define repFromUntil(name, from, until) for (int name = from, name##__until = (until); name < name##__until; name++)#define repFromTo(name, from, to) repFromUntil(name, from, to + 1)#define repr(...) __overload3(__VA_ARGS__, reprFromUntil, reprUntil, repeat)(__VA_ARGS__)#define reprUntil(name, times) reprFromUntil(name, 0, times)#define reprFromUntil(name, from, until) for (int name = until - 1, name##__from = (from); name >= name##__from; name--)#define reprFromTo(name, from, to) reprFromUntil(name, from, to + 1)#define EXIT(out) do { OUT(out); exit(0); } while (false)#define all(x) begin(x), end(x)#define rall(x) rbegin(x), rend(x)#define debugos cerr#ifdef LOCAL#define debug(v) do {debugos << "L" << __LINE__ << " " << #v << " > ";debugos<<(v)<<newl;} while (0)#define debugv(v) do {debugos << "L" << __LINE__ << " " << #v << " > ";for(auto e:(v)){debugos<<e<<" ";}debugos<<newl;} while (0)#define debuga(m,w) do {debugos << "L" << __LINE__ << " " << #m << " > ";for(int x=0;x<(w);x++){debugos<<(m)[x]<<" ";}debugos<<newl;} while (0)#define debugaa(m,h,w) do {debugos << "L" << __LINE__ << " " << #m << " > \n";for(int y=0;y<(h);y++){for(int x=0;x<(w);x++){debugos<<(m)[y][x]<<" ";}debugos<<newl;}} while (0)#else#define debug(v) do {v;} while (0)#define debugv(v) do {v;} while (0)#define debuga(m,w) {}#define debugaa(m,h,w) {}#endif#define newl "\n"template <typename T> bool chmin(T& var, T x) {if (var > x) {var = x;return true;} else return false;}template <typename T> bool chmax(T& var, T x) {if (var < x) {var = x;return true;} else return false;}template <typename T> T divceil(T m, T d) {return (m+d-1)/d;}template <typename T> int sgn(T val) {return (T(0) < val) - (val < T(0));}template<typename T>vector<T> make_v(size_t a, T b){return vector<T>(a, b);}template<typename... Ts>auto make_v(size_t a, Ts... ts){return vector<decltype(make_v(ts...))>(a, make_v(ts...));}class MyScanner {public:template <typename T> void input_integer(T& var) {var = 0; T sign = 1;int cc = getchar();for (; cc<'0' || '9'<cc; cc = getchar())if (cc == '-') sign = -1;for (; '0' <= cc && cc <= '9'; cc = getchar())var = (var << 3) + (var << 1) + cc - '0';var = var * sign;}int c() { char c; while (c = getchar(), c == ' ' or c == '\n'); return c; }MyScanner& operator>>(char& var) { var = c(); return *this; }MyScanner& operator>>(int& var) { input_integer<int>(var); return *this; }MyScanner& operator>>(ll& var) { input_integer<ll>(var); return *this; }MyScanner& operator>>(string& var) {int cc = getchar();for (; !isvisiblechar(cc); cc = getchar());for (; isvisiblechar(cc); cc = getchar())var.push_back(cc);return *this;}template <typename T, typename U>MyScanner& operator>>(pair<T, U>& var) {return *this >> var.first >> var.second;}template <typename T>operator T() {T x;*this >> x;return x;}template <typename T>void operator()(T &t) {*this >> t;}template <typename T, typename... Ts>void operator()(T &t, Ts &...ts) {*this >> t;this->operator()(ts...);}template <typename Iter>void iter(Iter first, Iter last) {while (first != last) *this >> *first, first++;}private:int isvisiblechar(int c) {return 0x21 <= c && c <= 0x7E;}};class MyPrinter {public:template <typename T>void output_integer(T var) {if (var == 0) { putchar('0'); return; }if (var < 0)putchar('-'),var = -var;char stack[32]; int stack_p = 0;while (var)stack[stack_p++] = '0' + (var % 10),var /= 10;while (stack_p)putchar(stack[--stack_p]);}MyPrinter& operator<<(char c) { putchar(c); return *this; }template <typename T> MyPrinter& operator<<(T var) { output_integer<T>(var); return *this; }MyPrinter& operator<<(char* str_p) { while (*str_p) putchar(*(str_p++)); return *this; }MyPrinter& operator<<(const char* str_p) { while (*str_p) putchar(*(str_p++)); return *this; }MyPrinter& operator<<(const string& str) {const char* p = str.c_str();const char* l = p + str.size();while (p < l) putchar(*p++);return *this;}// MyPrinter& operator<<(const modint& var) { output_integer<ll>(var.value); return *this; }template <typename T>void operator()(T x) {*this << x << newl;}template <typename T, typename... Ts>void operator()(T x, Ts ...xs) {*this << x << " ";this->operator()(xs...);}template <typename Iter>void iter(Iter s, Iter t) {if (s == t) *this << "\n";else {for (; s != t; s++) {*this << *s << " \n"[next(s, 1) == t];}}}template <typename Range>void range(const Range& r) {iter(begin(r), end(r));}};MyScanner IN;MyPrinter OUT;int main() {int a = IN, b = IN, c = IN, d = IN;if (b > d) swap(a, c), swap(b, d);int common = max(0, b - max(a, c) + 1);debug(common);OUT((b-a+1)*(d-c+1)-common);}