제출 #1071565

#제출 시각아이디문제언어결과실행 시간메모리
1071565Ausp3x비스킷 담기 (IOI20_biscuits)C++17
0 / 100
6 ms348 KiB
// 人外有人,天外有天
// author: Ausp3x

#pragma GCC optimize("O1, O2, O3, Ofast, unroll-loops")
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include "biscuits.h"
using namespace std;
using namespace __gnu_pbds;

#define fi first
#define se second
#define pb push_back
// #define DEBUG
typedef long long    lng;
typedef __int128     lli;
template<class T> 
using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;

int const INF32 = 0x3f3f3f3f;
lng const INF64 = 0x3f3f3f3f3f3f3f3f;

string getPrintableLli(lli x) {
    string x_str;
    while (x > 0) {
        x_str += '0' + x % 10;
        x /= 10;
    }
    reverse(x_str.begin(), x_str.end());

    return x_str;
}

lng count_tastiness(lng x, vector<lng> A) {
    int k = A.size();
    lli total_tastiness = 0; 
    vector<lli> T(k);
    for (int i = 0; i < k; i++) {
        T[i] = 1ll << i;
        total_tastiness += T[i] * A[i];
    }

    if (x > total_tastiness) 
        return 0;
    
    if (total_tastiness <= 100'000) {
        int ans = 1;
        for (int i = 1; i <= total_tastiness / x; i++) {
            vector<lli> req_cookies(k);
            for (int j = 0; j < k; j++)
                if (i & (1 << j))
                    req_cookies[j] = x;

            for (int j = k - 1; j > 0; j--)
                req_cookies[j - 1] += 2 * max<lli>(A[j] - req_cookies[j], 0);
        
            ans += req_cookies[0] <= A[0];
        }

        return ans;
    }

    return -1;
}

#ifdef DEBUG
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int t = 1;
    cin >> t;
    while (t--) {
        int k;
        lng x;
        cin >> k >> x;
        vector<lng> A(k);
        for (lng &a : A)
            cin >> a;

        cout << count_tastiness(x, A);
    }

    return 0;
}
#endif

컴파일 시 표준 에러 (stderr) 메시지

biscuits.cpp:4:55: warning: bad option '-f O2' to pragma 'optimize' [-Wpragmas]
    4 | #pragma GCC optimize("O1, O2, O3, Ofast, unroll-loops")
      |                                                       ^
biscuits.cpp:4:55: warning: bad option '-f O3' to pragma 'optimize' [-Wpragmas]
biscuits.cpp:4:55: warning: bad option '-f Ofast' to pragma 'optimize' [-Wpragmas]
biscuits.cpp:4:55: warning: bad option '-f unroll-loops' to pragma 'optimize' [-Wpragmas]
In file included from biscuits.cpp:7:
biscuits.h:3:64: warning: bad option '-f O2' to attribute 'optimize' [-Wattributes]
    3 | long long count_tastiness(long long x, std::vector<long long> a);
      |                                                                ^
biscuits.h:3:64: warning: bad option '-f O3' to attribute 'optimize' [-Wattributes]
biscuits.h:3:64: warning: bad option '-f Ofast' to attribute 'optimize' [-Wattributes]
biscuits.h:3:64: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
biscuits.h:3:64: warning: bad option '-f O2' to attribute 'optimize' [-Wattributes]
biscuits.h:3:64: warning: bad option '-f O3' to attribute 'optimize' [-Wattributes]
biscuits.h:3:64: warning: bad option '-f Ofast' to attribute 'optimize' [-Wattributes]
biscuits.h:3:64: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
biscuits.cpp:23:29: warning: bad option '-f O2' to attribute 'optimize' [-Wattributes]
   23 | string getPrintableLli(lli x) {
      |                             ^
biscuits.cpp:23:29: warning: bad option '-f O3' to attribute 'optimize' [-Wattributes]
biscuits.cpp:23:29: warning: bad option '-f Ofast' to attribute 'optimize' [-Wattributes]
biscuits.cpp:23:29: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
biscuits.cpp:34:41: warning: bad option '-f O2' to attribute 'optimize' [-Wattributes]
   34 | lng count_tastiness(lng x, vector<lng> A) {
      |                                         ^
biscuits.cpp:34:41: warning: bad option '-f O3' to attribute 'optimize' [-Wattributes]
biscuits.cpp:34:41: warning: bad option '-f Ofast' to attribute 'optimize' [-Wattributes]
biscuits.cpp:34:41: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...