제출 #1329534

#제출 시각아이디문제언어결과실행 시간메모리
1329534shoryu386Self Study (JOI22_ho_t2)C++20
컴파일 에러
0 ms0 KiB
#include<bits/stdc++.h>
using namespace std;
typedef long long __int128;
typedef unsigned long long ull;
#define l(a, b, i) for (ll i = a; i < b; i++)
#define rl(a, b, i) for (ll i = a; i >= b; i--)
#define vpair vector<pair<ll, ll>>
#define inf LLONG_MAX
#define ninf LLONG_MIN

bool meow(long long X, long long N, long long M, vector<long long> &vecA, vector<long long> &vecB) {
    ll maxtotal = N * M; // tổng số lessons accross các môn
    ll cnt = 0; // nếu lát cnt > maxtotal thì false

    l(1, N + 1, i) {
        //ll cur = 0; // cur knowledge of this subject
        bool pon; // môn này có đi học k, hay pon :D
        if (vecB[i] >= vecA[i]) pon = true;
        else pon = false;

        if (pon) {
            ll days = (X + vecB[i] - 1) / vecB[i];
            cnt += days;
        }

        else if (!pon) {
            if (X > M * vecA[i]) {
                ll days = M;
                ll left = X - M * vecA[i];
                days += (left + vecB[i] - 1) / vecB[i];
                cnt += days;
            }

            else {
                ll days = (X + vecA[i] - 1) / vecA[i];
                cnt += days;
            }
        }
    }

    return (cnt <= maxtotal);
}

int main() {
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);

    //freopen("selfstudy.inp", "r", stdin);
    //freopen("selfstudy.out", "w", stdout);

    long long N, M; cin >> N >> M; vector<long long> vecA(N + 1, 0), vecB(N + 1, 0);
    l(1, N + 1, i) cin >> vecA[i];
    l(1, N + 1, i) cin >> vecB[i];

    long long lo = 1, hi = 1e18; long long ans = 0;
    while (lo <= hi) {
        long long mid = (lo + hi) / 2;

        if (meow(mid, N, M, vecA, vecB)) {
            ans = mid;
            lo = mid + 1;
        }
        else hi = mid - 1;
    }

    cout << ans;
}

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

Main.cpp:3:19: error: declaration does not declare anything [-fpermissive]
    3 | typedef long long __int128;
      |                   ^~~~~~~~
Main.cpp: In function 'bool meow(long long int, long long int, long long int, std::vector<long long int>&, std::vector<long long int>&)':
Main.cpp:12:5: error: 'll' was not declared in this scope; did you mean 'ull'?
   12 |     ll maxtotal = N * M; // tổng số lessons accross các môn
      |     ^~
      |     ull
Main.cpp:13:7: error: expected ';' before 'cnt'
   13 |     ll cnt = 0; // nếu lát cnt > maxtotal thì false
      |       ^~~~
      |       ;
Main.cpp:15:17: error: expected ';' before 'i'
   15 |     l(1, N + 1, i) {
      |                 ^
Main.cpp:5:28: note: in definition of macro 'l'
    5 | #define l(a, b, i) for (ll i = a; i < b; i++)
      |                            ^
Main.cpp:15:17: error: 'i' was not declared in this scope
   15 |     l(1, N + 1, i) {
      |                 ^
Main.cpp:5:35: note: in definition of macro 'l'
    5 | #define l(a, b, i) for (ll i = a; i < b; i++)
      |                                   ^
Main.cpp:22:15: error: expected ';' before 'days'
   22 |             ll days = (X + vecB[i] - 1) / vecB[i];
      |               ^~~~~
      |               ;
Main.cpp:23:13: error: 'cnt' was not declared in this scope; did you mean 'int'?
   23 |             cnt += days;
      |             ^~~
      |             int
Main.cpp:23:20: error: 'days' was not declared in this scope; did you mean 'std::chrono::days'?
   23 |             cnt += days;
      |                    ^~~~
      |                    std::chrono::days
In file included from /usr/include/c++/13/chrono:41,
                 from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:172,
                 from Main.cpp:1:
/usr/include/c++/13/bits/chrono.h:907:11: note: 'std::chrono::days' declared here
  907 |     using days          = duration<_GLIBCXX_CHRONO_INT64_T, ratio<86400>>;
      |           ^~~~
Main.cpp:28:19: error: expected ';' before 'days'
   28 |                 ll days = M;
      |                   ^~~~~
      |                   ;
Main.cpp:29:19: error: expected ';' before 'left'
   29 |                 ll left = X - M * vecA[i];
      |                   ^~~~~
      |                   ;
Main.cpp:30:17: error: 'days' was not declared in this scope; did you mean 'std::chrono::days'?
   30 |                 days += (left + vecB[i] - 1) / vecB[i];
      |                 ^~~~
      |                 std::chrono::days
/usr/include/c++/13/bits/chrono.h:907:11: note: 'std::chrono::days' declared here
  907 |     using days          = duration<_GLIBCXX_CHRONO_INT64_T, ratio<86400>>;
      |           ^~~~
Main.cpp:31:17: error: 'cnt' was not declared in this scope; did you mean 'int'?
   31 |                 cnt += days;
      |                 ^~~
      |                 int
Main.cpp:35:19: error: expected ';' before 'days'
   35 |                 ll days = (X + vecA[i] - 1) / vecA[i];
      |                   ^~~~~
      |                   ;
Main.cpp:36:17: error: 'cnt' was not declared in this scope; did you mean 'int'?
   36 |                 cnt += days;
      |                 ^~~
      |                 int
Main.cpp:36:24: error: 'days' was not declared in this scope; did you mean 'std::chrono::days'?
   36 |                 cnt += days;
      |                        ^~~~
      |                        std::chrono::days
/usr/include/c++/13/bits/chrono.h:907:11: note: 'std::chrono::days' declared here
  907 |     using days          = duration<_GLIBCXX_CHRONO_INT64_T, ratio<86400>>;
      |           ^~~~
Main.cpp:41:13: error: 'cnt' was not declared in this scope; did you mean 'int'?
   41 |     return (cnt <= maxtotal);
      |             ^~~
      |             int
Main.cpp:41:20: error: 'maxtotal' was not declared in this scope
   41 |     return (cnt <= maxtotal);
      |                    ^~~~~~~~
Main.cpp: In function 'int main()':
Main.cpp:5:25: error: 'll' was not declared in this scope; did you mean 'ull'?
    5 | #define l(a, b, i) for (ll i = a; i < b; i++)
      |                         ^~
Main.cpp:51:5: note: in expansion of macro 'l'
   51 |     l(1, N + 1, i) cin >> vecA[i];
      |     ^
Main.cpp:51:14: error: the value of 'N' is not usable in a constant expression
   51 |     l(1, N + 1, i) cin >> vecA[i];
      |              ^
Main.cpp:5:39: note: in definition of macro 'l'
    5 | #define l(a, b, i) for (ll i = a; i < b; i++)
      |                                       ^
Main.cpp:50:15: note: 'long long int N' is not const
   50 |     long long N, M; cin >> N >> M; vector<long long> vecA(N + 1, 0), vecB(N + 1, 0);
      |               ^
Main.cpp:51:14: error: the value of 'N' is not usable in a constant expression
   51 |     l(1, N + 1, i) cin >> vecA[i];
      |              ^
Main.cpp:5:39: note: in definition of macro 'l'
    5 | #define l(a, b, i) for (ll i = a; i < b; i++)
      |                                       ^
Main.cpp:50:15: note: 'long long int N' is not const
   50 |     long long N, M; cin >> N >> M; vector<long long> vecA(N + 1, 0), vecB(N + 1, 0);
      |               ^
Main.cpp:51:14: error: the value of 'N' is not usable in a constant expression
   51 |     l(1, N + 1, i) cin >> vecA[i];
      |              ^
Main.cpp:5:39: note: in definition of macro 'l'
    5 | #define l(a, b, i) for (ll i = a; i < b; i++)
      |                                       ^
Main.cpp:50:15: note: 'long long int N' is not const
   50 |     long long N, M; cin >> N >> M; vector<long long> vecA(N + 1, 0), vecB(N + 1, 0);
      |               ^
Main.cpp:51:14: error: the value of 'N' is not usable in a constant expression
   51 |     l(1, N + 1, i) cin >> vecA[i];
      |              ^
Main.cpp:5:39: note: in definition of macro 'l'
    5 | #define l(a, b, i) for (ll i = a; i < b; i++)
      |                                       ^
Main.cpp:50:15: note: 'long long int N' is not const
   50 |     long long N, M; cin >> N >> M; vector<long long> vecA(N + 1, 0), vecB(N + 1, 0);
      |               ^
Main.cpp:51:14: error: the value of 'N' is not usable in a constant expression
   51 |     l(1, N + 1, i) cin >> vecA[i];
      |              ^
Main.cpp:5:39: note: in definition of macro 'l'
    5 | #define l(a, b, i) for (ll i = a; i < b; i++)
      |                                       ^
Main.cpp:50:15: note: 'long long int N' is not const
   50 |     long long N, M; cin >> N >> M; vector<long long> vecA(N + 1, 0), vecB(N + 1, 0);
      |               ^
Main.cpp:51:14: error: the value of 'N' is not usable in a constant expression
   51 |     l(1, N + 1, i) cin >> vecA[i];
      |              ^
Main.cpp:5:39: note: in definition of macro 'l'
    5 | #define l(a, b, i) for (ll i = a; i < b; i++)
      |                                       ^
Main.cpp:50:15: note: 'long long int N' is not const
   50 |     long long N, M; cin >> N >> M; vector<long long> vecA(N + 1, 0), vecB(N + 1, 0);
      |               ^
Main.cpp:51:14: error: the value of 'N' is not usable in a constant expression
   51 |     l(1, N + 1, i) cin >> vecA[i];
      |              ^
Main.cpp:5:39: note: in definition of macro 'l'
    5 | #define l(a, b, i) for (ll i = a; i < b; i++)
      |                                       ^
Main.cpp:50:15: note: 'long long int N' is not const
   50 |     long long N, M; cin >> N >> M; vector<long long> vecA(N + 1, 0), vecB(N + 1, 0);
      |               ^
Main.cpp:51:14: error: the value of 'N' is not usable in a constant expression
   51 |     l(1, N + 1, i) cin >> vecA[i];
      |              ^
Main.cpp:5:39: note: in definition of macro 'l'
    5 | #define l(a, b, i) for (ll i = a; i < b; i++)
      |                                       ^
Main.cpp:50:15: note: 'long long int N' is not const
   50 |     long long N, M; cin >> N >> M; vector<long long> vecA(N + 1, 0), vecB(N + 1, 0);
      |               ^
Main.cpp:51:14: error: the value of 'N' is not usable in a constant expression
   51 |     l(1, N + 1, i) cin >> vecA[i];
      |              ^
Main.cpp:5:39: note: in definition of macro 'l'
    5 | #define l(a, b, i) for (ll i = a; i < b; i++)
      |                                       ^
Main.cpp:50:15: note: 'long long int N' is not const
   50 |     long long N, M; cin >> N >> M; vector<long long> vecA(N + 1, 0), vecB(N + 1, 0);
      |               ^
Main.cpp:51:17: error: 'i' was not declared in this scope
   51 |     l(1, N + 1, i) cin >> vecA[i];
      |                 ^
Main.cpp:5:35: note: in definition of macro 'l'
    5 | #define l(a, b, i) for (ll i = a; i < b; i++)
      |                                   ^
Main.cpp:5:25: error: 'll' was not declared in this scope; did you mean 'ull'?
    5 | #define l(a, b, i) for (ll i = a; i < b; i++)
      |                         ^~
Main.cpp:52:5: note: in expansion of macro 'l'
   52 |     l(1, N + 1, i) cin >> vecB[i];
      |     ^
Main.cpp:52:14: error: the value of 'N' is not usable in a constant expression
   52 |     l(1, N + 1, i) cin >> vecB[i];
      |              ^
Main.cpp:5:39: note: in definition of macro 'l'
    5 | #define l(a, b, i) for (ll i = a; i < b; i++)
      |                                       ^
Main.cpp:50:15: note: 'long long int N' is not const
   50 |     long long N, M; cin >> N >> M; vector<long long> vecA(N + 1, 0), vecB(N + 1, 0);
      |               ^
Main.cpp:52:14: error: the value of 'N' is not usable in a constant expression
   52 |     l(1, N + 1, i) cin >> vecB[i];
      |              ^
Main.cpp:5:39: note: in definition of macro 'l'
    5 | #define l(a, b, i) for (ll i = a; i < b; i++)
      |                                       ^
Main.cpp:50:15: note: 'long long int N' is not const
   50 |     long long N, M; cin >> N >> M; vector<long long> vecA(N + 1, 0), vecB(N + 1, 0);
      |               ^
Main.cpp:52:14: error: the value of 'N' is not usable in a constant expression
   52 |     l(1, N + 1, i) cin >> vecB[i];
      |              ^
Main.cpp:5:39: note: in definition of macro 'l'
    5 | #define l(a, b, i) for (ll i = a; i < b; i++)
      |                                       ^
Main.cpp:50:15: note: 'long long int N' is not const
   50 |     long long N, M; cin >> N >> M; vector<long long> vecA(N + 1, 0), vecB(N + 1, 0);
      |               ^
Main.cpp:52:14: error: the value of 'N' is not usable in a constant expression
   52 |     l(1, N + 1, i) cin >> vecB[i];
      |              ^
Main.cpp:5:39: note: in definition of macro 'l'
    5 | #define l(a, b, i) for (ll i = a; i < b; i++)
      |                                       ^
Main.cpp:50:15: note: 'long long int N' is not const
   50 |     long long N, M; cin >> N >> M; vector<long long> vecA(N + 1, 0), vecB(N + 1, 0);
      |               ^
Main.cpp:52:14: error: the value of 'N' is not usable in a constant expression
   52 |     l(1, N + 1, i) cin >> vecB[i];
      |              ^
Main.cpp:5:39: note: in definition of macro 'l'
    5 | #define l(a, b, i) for (ll i = a; i < b; i++)
      |                                       ^
Main.cpp:50:15: note: 'long long int N' is not const
   50 |     long long N, M; cin >> N >> M; vector<long long> vecA(N + 1, 0), vecB(N + 1, 0);
      |               ^
Main.cpp:52:14: error: the value of 'N' is not usable in a constant expression
   52 |     l(1, N + 1, i) cin >> vecB[i];
      |              ^
Main.cpp:5:39: note: in definition of macro 'l'
    5 | #define l(a, b, i) for (ll i = a; i < b; i++)
      |                                       ^
Main.cpp:50:15: note: 'long long int N' is not const
   50 |     long long N, M; cin >> N >> M; vector<long long> vecA(N + 1, 0), vecB(N + 1, 0);
      |               ^
Main.cpp:52:14: error: the value of 'N' is not usable in a constant expression
   52 |     l(1, N + 1, i) cin >> vecB[i];
      |              ^
Main.cpp:5:39: note: in definition of macro 'l'
    5 | #define l(a, b, i) for (ll i = a; i < b; i++)
      |                                       ^
Main.cpp:50:15: note: 'long long int N' is not const
   50 |     long long N, M; cin >> N >> M; vector<long long> vecA(N + 1, 0), vecB(N + 1, 0);
      |               ^
Main.cpp:52:14: error: the value of 'N' is not usable in a constant expression
   52 |     l(1, N + 1, i) cin >> vecB[i];
      |              ^
Main.cpp:5:39: note: in definition of macro 'l'
    5 | #define l(a, b, i) for (ll i = a; i < b; i++)
      |                                       ^
Main.cpp:50:15: note: 'long long int N' is not const
   50 |     long long N, M; cin >> N >> M; vector<long long> vecA(N + 1, 0), vecB(N + 1, 0);
      |               ^
Main.cpp:52:14: error: the value of 'N' is not usable in a constant expression
   52 |     l(1, N + 1, i) cin >> vecB[i];
      |              ^
Main.cpp:5:39: note: in definition of macro 'l'
    5 | #define l(a, b, i) for (ll i = a; i < b; i++)
      |                                       ^
Main.cpp:50:15: note: 'long long int N' is not const
   50 |     long long N, M; cin >> N >> M; vector<long long> vecA(N + 1, 0), vecB(N + 1, 0);
      |               ^
Main.cpp:52:17: error: 'i' was not declared in this scope
   52 |     l(1, N + 1, i) cin >> vecB[i];
      |                 ^
Main.cpp:5:35: note: in definition of macro 'l'
    5 | #define l(a, b, i) for (ll i = a; i < b; i++)
      |                                   ^