Submission #1250172

#TimeUsernameProblemLanguageResultExecution timeMemory
1250172haiphong5g0Souvenirs (IOI25_souvenirs)C++20
Compilation error
0 ms0 KiB
#include "souvenirs.h" #include <bits/stdc++.h> #define task "TEST" #define task2 "A" #define pl pair<ll, ll> #define pf push_front #define pb push_back #define pob pop_back #define pof pop_front #define mp make_pair #define fi first #define se second #define FOR(i, a, b, c) for (int i=a; i<=b; i+=c) #define FORE(i, a, b, c) for (int i=a; i>=b; i+=c) using namespace std; using ll = long long; using ull = unsigned long long; const int Mod = 998244353; const int maxn = 1e3; const ll Inf = 1e16; pair<vector<int>, ll> res; ll P[maxn+1], num[maxn+1]; pair<vector<int>, ll> F[maxn+1]; void Sub2_3(ll n) { FOR(i, 1, n-2, 1) { res = transaction(P[i-1]-2); for (auto p : res.fi) num[p]++; if (res.fi[0] != i) P[i] = P[i-1] - 1; else P[i] = P[i-1] - 2; } FOR(i, 1, n-2, 1) FOR(j, num[i], i-1, 1) transaction(P[i]); FOR(j, num[n-1], n-2, 1) transaction(P[n-2]-1); } void Sub5(ll n) { ll val = P[0] - 1; while (true) { res = transaction(val); for (auto p : res.fi) num[p]++; res.se = val - res.se; F[res.fi[0]] = res; if (res.fi[0] == n-1) { P[n-1] = res.se; break; } val /= 2; } FORE(i, n-2, 1, -1) { val *= 2; if (F[i].fi.size() == 0) { res = transaction(val); for (auto p : res.fi) num[p]++; res.se = val - res.se; F[i] = res; } val = F[i].se; for (auto p : F[i].fi) val -= P[p]; P[i] = val; } FOR(i, 1, n-1, 1) FOR(j, num[i], i-1, 1) transaction(P[i]); } // std::pair<std::vector<int>, long long> transaction(long long M) void buy_souvenirs(int n, long long P0) { P[0] = P0; if (n == 2) transaction(P[0]-1); else if (n == 3) { res = transaction(P[0]-1); if (res.fi.size() == 1) { transaction(P[0]-res.se-2); transaction(P[0]-res.se-2); } else transaction((P[0]-1-res.se)/2); } else Sub5(); } //7 6 5 4 3 2 1

Compilation message (stderr)

souvenirs.cpp: In function 'void buy_souvenirs(int, long long int)':
souvenirs.cpp:75:14: error: too few arguments to function 'void Sub5(ll)'
   75 |     else Sub5();
      |          ~~~~^~
souvenirs.cpp:35:6: note: declared here
   35 | void Sub5(ll n) {
      |      ^~~~