Submission #718419

#TimeUsernameProblemLanguageResultExecution timeMemory
718419vjudge1Permutation (APIO22_perm)C++17
Compilation error
0 ms0 KiB
#include "perm.h"
#include <bits/stdc++.h>

using namespace std;

const int MX = 1e18;

long long count_increasing(const vector<int>& v) {
  vector<long long> dp(v.size() + 1, 0);
  dp[0] = 1;
  for (int x : v)
  {
  	for (int i = 0; i <= x; i++)
  	{
  		dp[x+1] += dp[i];
  		dp[x+1] = min(dp[x+1],MX+1);
  	}
  }
  long long result = 0;
  for (int i = 0; i <= (int)v.size(); i++){
  	result += dp[i];
  	result = min(result,MX+1);
  }
  return result;
}
std::vector<int> construct_permutation(long long k)
{
	vector <int> ans;
	//return ans;
	for(int i = 0;; ++i){
		vector <int> tmp;
		int sz = i + 1;
		if (ans.empty()) ans.push_back(i);
		else {
			for(int p = 0; p < sz; ++p){
				vector<int> cur = ans;
				cur.insert(cur.begin() + p, i);
				if (count_increasing(cur) <= k) tmp = cur;
				else break;
			}
			ans = tmp;
		}

		if (count_increasing(ans) == k){
			break;
		}
	}

	return ans;
}

Compilation message (stderr)

perm.cpp:6:16: warning: overflow in conversion from 'double' to 'int' changes value from '1.0e+18' to '2147483647' [-Woverflow]
    6 | const int MX = 1e18;
      |                ^~~~
perm.cpp: In function 'long long int count_increasing(const std::vector<int>&)':
perm.cpp:16:31: error: no matching function for call to 'min(__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type&, int)'
   16 |     dp[x+1] = min(dp[x+1],MX+1);
      |                               ^
In file included from /usr/include/c++/10/vector:60,
                 from perm.h:1,
                 from perm.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:230:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::min(const _Tp&, const _Tp&)'
  230 |     min(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:230:5: note:   template argument deduction/substitution failed:
perm.cpp:16:31: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int')
   16 |     dp[x+1] = min(dp[x+1],MX+1);
      |                               ^
In file included from /usr/include/c++/10/vector:60,
                 from perm.h:1,
                 from perm.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:278:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::min(const _Tp&, const _Tp&, _Compare)'
  278 |     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:278:5: note:   template argument deduction/substitution failed:
perm.cpp:16:31: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int')
   16 |     dp[x+1] = min(dp[x+1],MX+1);
      |                               ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from perm.cpp:2:
/usr/include/c++/10/bits/stl_algo.h:3468:5: note: candidate: 'template<class _Tp> constexpr _Tp std::min(std::initializer_list<_Tp>)'
 3468 |     min(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3468:5: note:   template argument deduction/substitution failed:
perm.cpp:16:31: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   16 |     dp[x+1] = min(dp[x+1],MX+1);
      |                               ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from perm.cpp:2:
/usr/include/c++/10/bits/stl_algo.h:3474:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::min(std::initializer_list<_Tp>, _Compare)'
 3474 |     min(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3474:5: note:   template argument deduction/substitution failed:
perm.cpp:16:31: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   16 |     dp[x+1] = min(dp[x+1],MX+1);
      |                               ^
perm.cpp:22:28: error: no matching function for call to 'min(long long int&, int)'
   22 |    result = min(result,MX+1);
      |                            ^
In file included from /usr/include/c++/10/vector:60,
                 from perm.h:1,
                 from perm.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:230:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::min(const _Tp&, const _Tp&)'
  230 |     min(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:230:5: note:   template argument deduction/substitution failed:
perm.cpp:22:28: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int')
   22 |    result = min(result,MX+1);
      |                            ^
In file included from /usr/include/c++/10/vector:60,
                 from perm.h:1,
                 from perm.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:278:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::min(const _Tp&, const _Tp&, _Compare)'
  278 |     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:278:5: note:   template argument deduction/substitution failed:
perm.cpp:22:28: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int')
   22 |    result = min(result,MX+1);
      |                            ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from perm.cpp:2:
/usr/include/c++/10/bits/stl_algo.h:3468:5: note: candidate: 'template<class _Tp> constexpr _Tp std::min(std::initializer_list<_Tp>)'
 3468 |     min(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3468:5: note:   template argument deduction/substitution failed:
perm.cpp:22:28: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   22 |    result = min(result,MX+1);
      |                            ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from perm.cpp:2:
/usr/include/c++/10/bits/stl_algo.h:3474:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::min(std::initializer_list<_Tp>, _Compare)'
 3474 |     min(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3474:5: note:   template argument deduction/substitution failed:
perm.cpp:22:28: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   22 |    result = min(result,MX+1);
      |                            ^