結果

問題 No.2416 vs Slime
ユーザー eq_K
提出日時 2023-08-12 13:37:58
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 2 ms / 2,000 ms
コード長 8,473 bytes
コンパイル時間 2,545 ms
コンパイル使用メモリ 203,352 KB
実行使用メモリ 6,820 KB
最終ジャッジ日時 2024-11-19 15:45:27
合計ジャッジ時間 3,664 ms
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 37
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

/*
#define _GLIBCXX_DEBUG
//*/
#include <bits/stdc++.h>
/*
#include <atcoder/all>
using namespace atcoder;
//*/
using namespace std;
#define dbl double
#define ll long long
#define ull unsigned long long
#define ld long double
#define pii pair<int,int>
#define pll pair<ll,ll>
#define ti3 tuple<int,int,int>
#define tl3 tuple<ll,ll,ll>
#define vi vector<int>
#define vc vector<char>
#define vl vector<ll>
#define vb vector<bool>
#define vs vector<string>
#define vvi vector<vector<int>>
#define vvc vector<vector<char>>
#define vvb vector<vector<bool>>
#define vvl vector<vector<ll>>
#define vvvi vector<vector<vector<int>>>
#define vvvc vector<vector<vector<char>>>
#define vvvl vector<vector<vector<ll>>>
#define vvvvi vector<vector<vector<vector<int>>>>
#define vvvvc vector<vector<vector<vector<char>>>>
#define vvvvl vector<vector<vector<vector<ll>>>>
#define vpi vector<pii>
#define vpl vector<pll>
#define prq priority_queue
#define prq2 priority_queue<ll,vl, greater<ll>>
#define seti set<int>
#define setl set<ll>
#define quel queue<ll>
#define pb push_back
#define ps push
#define ins insert
#define rev reverse
#define fi first
#define se second
#define lb lower_bound
#define ub upper_bound
#define all(x) x.begin(),x.end()
#define forv(i,V) for(const auto& i:V)
#define rep(i,n) for (ll i = 0; i < (ll)(n); i++)
#define repi(i,j,n) for (ll i = (ll)(j);i < (ll)(n);i++)
#define rep2(i,n) for(ll i=(ll)(n-1);i>=0ll;i--)
#define repi2(i,n,j) for(ll i=(ll)(n-1);i>=(ll)(j);i--)
#define faster ios::sync_with_stdio(false);std::cin.tie(nullptr);
const double PI=3.14159265358979323846;
vl dxs = {1, 0, -1, 0};
vl dys = {0, 1, 0, -1};
ll max(int a,ll b){return max((ll)a,b);}
ll max(ll a,int b){return max((ll)b,a);}
ll min(int a,ll b){return min((ll)a,b);}
ll min(ll a,int b){return min((ll)b,a);}
ll gcd(ll a,ll b){if(b==0){return a;}else{return gcd(b,a%b);}}
ll lcm(ll a,ll b){return (a/gcd(a,b))*b;}
ll indexlb(vl &v,ll x){auto it=lb(all(v),x);ll index=it-v.begin();return index;}
ll indexub(vl &v,ll x){auto it=ub(all(v),x);ll index=it-v.begin();return index;}
ll setlb(setl &s,ll x){auto it=s.lb(x); return *it;}//
ll setub(setl &s,ll x){auto it=s.ub(x); return *it;}//
void setpre(double d,ll x){cout<<fixed<<setprecision(x)<<d<<endl;}
void ldsetpre(ld d,ll x){cout<<fixed<<setprecision(x)<<d<<endl;}
template <typename T>
void output(vector<T> &A) {rep(i,A.size()){cout<<A[i];if(i!=A.size()-1){cout<<" ";}else{cout<<endl;}}}
template <typename T>
void cinvec(vector<T> &A){rep(i,A.size()) cin>>A[i];}
template <typename T>
void coutvece(vector<T> &A){for(ll i=0;i<A.size();i++) cout <<A[i]<<endl;}
template <typename T>
bool chmin(T &a,const T &b){if(b<a){a=b; return 1;} return 0;}
template <typename T>
bool chmax(T &a,const T &b){if(b>a){a=b; return 1;} return 0;}
void yesno(bool i){if(i)cout<<"yes"<<endl;else cout<<"no"<<endl;}
void YesNo(bool i){if(i)cout<<"Yes"<<endl;else cout<<"No"<<endl;}
void YESNO(bool i){if(i)cout<<"YES"<<endl;else cout<<"NO"<<endl;}
ll suretu_sum(vl a){//
ll n=a.size();
ll res=0;
rep(i,n){
res+=a[i];
}
return res;
}
bool isprime(ll n){//
if(n<2) return false;
else if(n==2) return true;
else if(n%2==0) return false;
double sqrtn=sqrt(n);
for(int i=3;i<=sqrtn;i+=2){
if(n%i==0){
return false;
}
}
return true;
}
ll modinv(ll a,ll m){//mod ma
ll b=m,u=1,v=0;
while(b){
ll t=a/b;
a-=t*b; swap(a,b);
u-=t*v; swap(u,v);
}
u%=m;
if(u<0) u+=m;
return u;
}
ll modwari(ll a,ll b,ll m){//mod ma/b
ll ans=a*modinv(b,m)%m;
return ans;
}
ll modpow(ll a,ll n,ll mod) {
ll res=1;
while(n>0) {
if(n&1) res=(res*a)%mod;
a=a*a%mod;
n>>=1;
}
return res;
}
vl factt,invv,fact_inv;
void combjyunbi(ll size,ll mod){
factt.resize(size+5);
fact_inv.resize(size+5);
invv.resize(size+5);
factt[0]=factt[1]=1;
fact_inv[0]=fact_inv[1]=1;
invv[1]=1;
repi(i,2,size+5){
factt[i]=factt[i-1]*i%mod;
invv[i]=mod-invv[mod%i]*(mod/i)%mod;
fact_inv[i]=fact_inv[i-1]*invv[i]%mod;
}
}
//combjyunbi
ll combmod(ll n,ll k,ll mod){
return factt[n]*(fact_inv[k]*fact_inv[n-k]%mod)%mod;
}
ll combmod2(ll n,ll k,ll mod){
ll ans=1;
repi(i,1,k+1){
ans*=modwari(n-i+1,i,mod);
ans%=mod;
}
return ans;
}
//nk(O(k))
struct edge {
ll from; //
ll to; //
ll leng; //
};
struct yukoedge{
ll to;
};
using Graph =vvl;
using Graph2=vector<vector<edge>>;
using Graph3=vector<vector<yukoedge>>;//.pb({x})
vl topo_sort(const Graph3 &G){//bfs size≠n
vl ans;
ll n=G.size();
vl ind(n);// ind[i]: i()
rep(i,n){//count index
forv(e,G[i]){
ind[e.to]++;
}
}
quel que;//prq2
rep(i,n){//0
if(ind[i]==0){
que.push(i);
}
}
while(!que.empty()){//bfs
ll now=que.front();
ans.pb(now);
que.pop();
forv(e,G[now]){
ind[e.to]--;
if(ind[e.to]==0) {
que.push(e.to);
}
}
}
return ans;
}
vl sieve(ll n){
//fast_soinsu O(NloglogN)
//vl min_factor=sieve(1e6)
vl min_factor(n+1);
rep(i,n+1) min_factor[i] = i;
for(ll i=2;i*i<=n;i++){
if(min_factor[i]==i){
for(ll j=2;i*j<= n;j++){
if(min_factor[i*j]>i){
min_factor[i*j]=i;
}
}
}
}
return min_factor;
}
vl fast_soinsu(const vl &min_factor,ll m){
//N
//vl min_factor=sieve(1e6); O(NloglogN)
//vl g=soinsu(min_factor,i);
// O(logN)
vl ans;
while(m>1){
ans.pb(min_factor[m]);
m/=min_factor[m];
}
return ans;
}
vector<pll> factorize(ll n){// {,}
vector<pll> ans;
for(ll a=2;a*a<=n;a++){
if(n%a!=0) continue;
ll ex=0;
while(n%a==0){
ex++;
n/=a;
}
ans.pb({a,ex});
}
if(n!=1) ans.push_back({n, 1});
return ans;
}
vl divisor(ll n){//(sqrt(n))
vl ret;
for(ll i=1;i*i<=n;i++){
if(n%i==0){
ret.push_back(i);
if(i*i!=n) ret.push_back(n/i);
}
}
sort(all(ret));
return ret;
}
vector<pair<ll,char>> rle(string s){//(,)
ll n=s.length();
vector<pair<ll,char>> res;
char pre=s[0];
ll cnt=1;
repi(i,1,n) {
if(pre!=s[i]){
res.push_back({cnt,pre});
pre=s[i];
cnt=1;
}
else cnt++;
}
res.push_back({cnt,pre});
return res;
}
vl bfs(Graph G,ll s){//s
ll n=G.size();
vl dist(n,-1);
quel que;
dist[s]=0;
que.push(s);
while (!que.empty()) {
ll v=que.front();
que.pop();
forv(nv,G[v]) {
if (dist[nv]!=-1) continue;
dist[nv]=dist[v]+1;
que.push(nv);
}
}
return dist;
}
template <typename T>
vector<T> jyu_nasi(vector<T> a){//sort
a.erase(unique(all(a)),a.end());
return a;
}
map<ll,ll> zaatu(vl &a,ll t){//O(NlogN)
map<ll,ll> poi;
vl copy=a;
sort(all(copy));
copy=jyu_nasi(copy);
vl res(a.size());
rep(i,a.size()){
if(t==0) poi[indexlb(copy,a[i])]=a[i];//t=01
else poi[a[i]]=indexlb(copy,a[i]);
res[i]=indexlb(copy,a[i]);
}
a=res;
return poi;
}
vl ruisekiwa(vl a){//
ll n=a.size();
vl res(n);
res[0]=a[0];
repi(i,1,n){
res[i]=res[i-1]+a[i];
}
return res;
}
int main(){
ll h,a;
cin>>h>>a;
ll ha=h;
ll d=0;
ll ans=1;
while(ha>0){
ha=ha/a;
d++;
ans*=2;
}
cout<<ans-1<<endl;
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0