結果
問題 | No.1651 Removing Cards |
ユーザー |
|
提出日時 | 2021-08-20 22:06:25 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 4,142 bytes |
コンパイル時間 | 3,168 ms |
コンパイル使用メモリ | 191,800 KB |
最終ジャッジ日時 | 2025-01-23 23:26:28 |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 18 TLE * 14 |
ソースコード
#include <iostream>#include <algorithm>#include <utility>#include <string>#include <vector>#include <set>#include <stack>#include <queue>#include <map>#include <math.h>#include <string.h>#include <iomanip>#include <numeric>#include <cstdlib>#include <cstdint>#include <cmath>#include <functional>#include <limits>#include <cassert>#include <bitset>#include <chrono>#include <random>#include <memory>#include <atcoder/all>/* macro */#define rep(i, a, n) for (int i = (int)(a); i < (int)(n); i++)#define rrep(i, a, n) for (int i = ((int)(n-1)); i >= (int)(a); i--)#define Rep(i, a, n) for (i64 i = (i64)(a); i< (i64)(n); i++)#define RRep(i, a, n) for (i64 i = ((i64)(n-i64(1))); i>=(i64)(a); i--)#define all(v) (v).begin(),(v).end()#define rall(v) (v).rbegin(),(v).rend()/* macro end *//* template */namespace ebi {#ifdef LOCAL#define debug(...) \std::cerr << "LINE: " << __LINE__ << " [" << #__VA_ARGS__ << "]:", \debug_out(__VA_ARGS__)#else#define debug(...)#endifvoid debug_out() { std::cerr << std::endl; }template <typename Head, typename... Tail>void debug_out(Head h, Tail... t) {std::cerr << " " << h;if (sizeof...(t) > 0) std::cout << " :";debug_out(t...);}template <typename T1, typename T2>std::ostream& operator<<(std::ostream& os, std::pair<T1, T2> pa) {return os << pa.first << " " << pa.second;}template <typename T>std::ostream& operator<<(std::ostream& os, std::vector<T> vec) {for (std::size_t i = 0; i < vec.size(); i++) os << vec[i] << (i + 1 == vec.size() ? "" : " ");return os;}std::ostream& operator<<(std::ostream& os, atcoder::modint1000000007 a){return os << a.val();}std::ostream& operator<<(std::ostream& os, atcoder::modint998244353 a){return os << a.val();}using size_t = std::size_t;using i64 = long long;using u64 = unsigned long long;template<class T> void fill(std::vector<T> &v) { for(T &e: v) std::cin >> e; }template<class T>struct Edge {int to;T cost;Edge(int to, T cost) : to(to), cost(cost) { }};template<class T>using Graph = std::vector<std::vector<Edge<T>>>;using graph = std::vector<std::vector<int>>;template <class T>inline bool chmin(T &a, T b) {if (a > b){a = b;return true;}return false;}template <class T>inline bool chmax(T &a, T b) {if (a < b){a = b;return true;}return false;}template <class T>T gcd(T a, T b){if( b==0 ) return a;else return gcd(b, a%b);}template <class T>T lcm(T a, T b) {return (a*b)/gcd(a,b);}template<class T>T pow(T x, i64 n) {T res = 1;while(n>0){if(n&1) res = res *x;x = x*x;n>>=1;}return res;}template<class T>T mod_pow(T x, i64 n, i64 mod) {T res = 1;while(n > 0) {if(n & 1) res = (res * x)%mod;x = (x*x)%mod;n >>= 1;}return res;}template<class T>T scan() {T val;std::cin >> val;return val;}constexpr i64 LNF = std::numeric_limits<i64>::max()/4;constexpr int INF = std::numeric_limits<int>::max()/4;const long double PI = acos(-1);const std::vector<int> dy = {1,0,-1,0,1,1,-1,-1};const std::vector<int> dx = {0,1,0,-1,1,-1,1,-1};}/* template end */namespace ebi {using ld = long double;using mint = atcoder::modint1000000007;void main_() {int k,q;std::cin >> k >> q;std::map<i64,i64> map;auto f = [&](auto f, i64 m) -> i64 {if(map.find(m) != map.end()) return map[m];if(m == 1) return map[m] = 0;i64 prev = m - (m-1)/k - 1;i64 ret = f(f, prev);ret += ret/(k-1);ret++;assert(ret < m);return map[m] = ret;};while(q--) {i64 n;std::cin >> n;std::cout << f(f, n) + 1 << '\n';}}}int main() {std::cout << std::fixed << std::setprecision(15);std::cin.tie(nullptr);std::ios::sync_with_stdio(false);int t = 1;while(t--) {ebi::main_();}return 0;}