Submission #1112247

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
11122472024-11-13 21:29:23XingXangXongPermutation (APIO22_perm)C++17
91.33 / 100
3 ms336 KiB
#include <bits/stdc++.h>
#include "perm.h"
using namespace std;
typedef long long ll;
vector<int> dp = {-1, 0, 1};
vector<vector<int>> dpConst = {{}, {}, {0}};
int calcMin(ll id, ll k)
{
if (id >= k) return dp[k];
vector<int> digs;
while (k > 0) digs.push_back(k % id), k /= id;
reverse(digs.begin(), digs.end());
int ans = (digs.size()-1)*dp[id];
ans += dp[digs[0]];
for (int i = 1; i < digs.size(); i++) ans += dp[digs[i]+1];
return ans;
}
vector<int> constMin(ll id, ll k)
{
if (id >= k) return dpConst[k];
vector<int> digs;
while (k > 0) digs.push_back(k % id), k /= id;
reverse(digs.begin(), digs.end());
vector<int> ans = dpConst[digs[0]];
for (int i = 1; i < digs.size(); i++)
{
vector<int> aux = dpConst[id];
for (auto x : ans) aux.push_back(x+dp[id]);
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Compilation message (stderr)

perm.cpp: In function 'int calcMin(ll, ll)':
perm.cpp:16:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   16 |     for (int i = 1; i < digs.size(); i++) ans += dp[digs[i]+1];
      |                     ~~^~~~~~~~~~~~~
perm.cpp: In function 'std::vector<int> constMin(ll, ll)':
perm.cpp:27:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   27 |  for (int i = 1; i < digs.size(); i++)
      |                  ~~^~~~~~~~~~~~~
perm.cpp: In function 'void init()':
perm.cpp:47:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   47 |   for (int id = 2; id < dp.size(); id++)
      |                    ~~~^~~~~~~~~~~
perm.cpp: In function 'std::vector<int> construct_permutation(long long int)':
perm.cpp:61:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   61 |  for (int i = 2; i < dp.size(); i++)
      |                  ~~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...