結果

問題 No.2110 012 Matching
ユーザー YoureinYourein
提出日時 2022-10-28 22:36:26
言語 C++17
(gcc 13.2.0 + boost 1.83.0)
結果
AC  
実行時間 326 ms / 2,000 ms
コード長 5,090 bytes
コンパイル時間 9,064 ms
コンパイル使用メモリ 473,568 KB
実行使用メモリ 4,500 KB
最終ジャッジ日時 2023-09-20 05:43:18
合計ジャッジ時間 12,795 ms
ジャッジサーバーID
(参考情報)
judge13 / judge14
このコードへのチャレンジ(β)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 2 ms
4,376 KB
testcase_01 AC 83 ms
4,376 KB
testcase_02 AC 216 ms
4,384 KB
testcase_03 AC 144 ms
4,500 KB
testcase_04 AC 289 ms
4,380 KB
testcase_05 AC 202 ms
4,376 KB
testcase_06 AC 196 ms
4,380 KB
testcase_07 AC 325 ms
4,376 KB
testcase_08 AC 12 ms
4,380 KB
testcase_09 AC 49 ms
4,376 KB
testcase_10 AC 326 ms
4,376 KB
testcase_11 AC 2 ms
4,376 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <iostream>
#include <iomanip>
#include <cmath>
#include <algorithm>
#include <string>
#include <vector>
#include <map>
#include <unordered_map>
#include <set>
#include <unordered_set>
#include <queue>
#include <stack>
#include <numeric>
#include <cassert>
#include <climits>
#include <limits>
#include <typeinfo>

#if __has_include(<boost/range/combine.hpp>)
#include <boost/range/combine.hpp> //Zip function for C++
#endif

#if __has_include(<boost/multiprecision/cpp_int.hpp>)
#include <boost/multiprecision/cpp_int.hpp>
#include <boost/multiprecision/cpp_dec_float.hpp>
using pyint = boost::multiprecision::cpp_int;
using i128 = boost::multiprecision::int128_t;
using i256 = boost::multiprecision::int256_t;
using i512 = boost::multiprecision::int512_t;
using i1024 = boost::multiprecision::int1024_t;
using f50 = boost::multiprecision::cpp_dec_float_50;
using f100 = boost::multiprecision::cpp_dec_float_100;
#endif

//Binary Indexed Tree
// #include<ext/pb_ds/assoc_container.hpp>
// #include<ext/pb_ds/tree_policy.hpp>
// #include<ext/pb_ds/tag_and_trait.hpp>
// using namespace __gnu_pbds;
//Binary Indexed Tree

using i32 = int32_t;
using i64 = int64_t;
using ll = long long;
using ull = unsigned long long;
using ld = long double;
using namespace std;

#define all(x) x.begin(),x.end()
#define rall(x) x.rbegin(),x.rend()

//iostream operator
template <typename T> istream &operator>>(istream &is, vector<T> &x){for (auto &y:x){is >> y;} return is;}
template <typename T> ostream &operator<<(ostream &os, vector<T> &x){for (size_t e = 0; e < x.size(); e++){os << x[e] << (e==x.size()-1?"":" ");} return os;}
template <class T, class S> istream &operator>>(istream &is, pair<T, S> &x){is >> x.first >> x.second; return is;}
template <class T, class S> ostream &operator<<(ostream &os, pair<T, S> &x){os << x.first << " " << x.second; return os;}
//iostream operator

namespace cpio{
    //Debug out
    void dout(){cerr << "\n";}
    template<typename T, typename... Ts> void dout(const T& a, const Ts&... b){cerr << a; (cerr << ... << (cerr << ' ', b)); cerr << "\n";}

    //Yes or No
    void yon(bool yorn, string Y = "Yes", string N = "No"){cout << (yorn?Y:N) << endl;}
}; using namespace cpio;

namespace cpmath{
    //Math library for Competitive-Programming
    constexpr ll mod97 = 1000000007;
    constexpr ll mod99 = 1000000009;
    constexpr ll mod89 = 998244353;
    constexpr double pi = acos(-1);

    const int imax = numeric_limits<int>::max();
    const long long llmax = numeric_limits<long long>::max();
    const int safeimax = numeric_limits<int>::max()/2;
    const long long safellmax = numeric_limits<long long>::max()/2;

    constexpr int DX4[4] = {1, 0, -1, 0};
    constexpr int DY4[4] = {0, 1, 0, -1};
    constexpr int DX8[8] = {-1, 0, 1, -1, 1, -1, 0, 1};
    constexpr int DY8[8] = {-1, -1, -1, 0, 0, 1, 1, 1};

    //Return a!/(b-1)! = a*(a-1)*...*(b+1)*b, O(a)
    ll factorial(ll a, ll b = -1, const ll fmod = -1){
        ll ans = 1;
        if (fmod > 1) {
            if (b == -1) for (ll i = a; i > 1; i--) ans = ((ans%fmod)*(i%fmod))%fmod;
            else for (ll i = a; i >= b; i--) ans = ((ans%fmod)*(i%fmod))%fmod;
        }
        else{
            if (b == -1) for (ll i = a; i > 1; i--) ans = ans*i;
            else for(ll i = a; i >= b; i--) ans = ans*i;
        }
        return ans;
    }

    //Return m^p, O(log p)
    ll fastpow(ll m, ll p){
        if (p == 0) return 1;
        if (p%2 == 0){ll t = fastpow(m, p/2); return t*t;}
        return m*fastpow(m, p-1);
    }

    ll modpow(ll m, ll p, const ll fmod){
        if (p == 0) return 1;

        if (m%fmod == 0) return 0;
        if (p%2 == 0){ll t = modpow(m, p/2, fmod); return (t*t)%fmod;}
        return (m*modpow(m, p-1, fmod))%fmod;
    }

    ld dtor(const ld deg){return deg*(pi/(ld)180);}

    template<class T> double fmedian(vector<T> a){return (static_cast<double>(a[((int(a.size())+1)/2)-1])+static_cast<double>(a[(int(a.size())/2)]))/2;}
    template<class T> pair<long long, long long> imedian(vector<T> a) {
        return {
            (static_cast<long long>(a[((int(a.size())+1)/2)-1])+static_cast<long long>(a[(int(a.size())/2)]))/2LL,
            (static_cast<long long>(a[((int(a.size())+1)/2)-1])+static_cast<long long>(a[(int(a.size())/2)])+1)/2LL,
        };
    }
    
    long long inversed(ll n, const ll mod){return cpmath::modpow(n, mod-2, mod);}
}

using cpmath::mod89;
using cpmath::mod97;
using cpmath::mod99;
using cpmath::imax;
using cpmath::llmax;
using cpmath::safeimax;
using cpmath::safellmax;

using cpmath::DX4;
using cpmath::DY4;
//using cpmath::DX8;
//using cpmath::DY8;

// using gtree = tree<T, null_type, greater<T>, rb_tree_tag, tree_order_statistics_node_update>;

int main() {
    int t;
    cin >> t;

    while(t--) {
        ll a, b, c;
        cin >> a >> b >> c;

        ll ans = 0;
        ll temp = min(a, c);
        ans += 2*temp;
        a -= temp;
        c -= temp;

        ans += c/2;
        ans += 2*(b/2);
        b -= 2*(b/2);

        ans += min(a, b);

        cout << ans << endl;
    }
}
0