結果
問題 | No.915 Plus Or Multiple Operation |
ユーザー |
![]() |
提出日時 | 2019-10-25 22:42:35 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 3 ms / 2,000 ms |
コード長 | 2,018 bytes |
コンパイル時間 | 2,300 ms |
コンパイル使用メモリ | 193,072 KB |
最終ジャッジ日時 | 2025-01-08 01:31:27 |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 10 |
ソースコード
#include <bits/stdc++.h>typedef long long ll;typedef long double ld;const int INF=1e9,MOD=1e9+7,ohara=1e6+10;const ll LINF=1e18;using namespace std;#define rep(i,n) for(ll (i)=0;(i)<(int)(n);(i)++)#define rrep(i,a,b) for(ll i=(a);i<(b);i++)#define rrrep(i,a,b) for(ll i=(a);i>=(b);i--)#define all(v) (v).begin(), (v).end()#define Size(n) (n).size()#define Cout(x) cout<<(x)<<endl#define doublecout(a) cout<<fixed<<setprecision(15)<<a<<endl;#define Cerr(x) cerr<<(x)<<endl#define fi first#define se second#define P pair<ll,ll>#define m_p make_pair#define V vector<ll>#define U_MAP unordered_map<ll,ll>#define pq priority_queue<ll>#define rpq priority_queue<ll,vector<ll>,greater<ll>>#define p_b push_backll n,cnt,ans,a,b,c,d,tmp,tmpp,m,h,w,x,y,sum,pos,k,q;ld doua;int dy[]={1,0,-1,0};int dx[]={0,1,0,-1};//int dy[]={-1,0,1,-1,1,-1,0,1};//int dx[]={-1,-1,-1,0,0,1,1,1};string alph("abcdefghijklmnopqrstuvwxyz"),s;bool fl;struct edge{int to,cost;};//------ Believe yourself as a genius!!!!!! ------int main(void){cin.tie(0);cout.tie(0);ios::sync_with_stdio(false);cin>>q;while(1){cin>>a>>b>>c;ans=0;if(c==1){Cout(-1);}else{ll now=a;while(1){if(now==0)break;if(now%c==0){now/=c;ans+=b;}else{ll cou1=0,cou2=0;ll want=now-now%c;ll cost=(now-want)/(c-1);if((now-want)%(c-1)!=0)cost++;cou1+=b*cost;cost=(now)/(c-1);if((now)%(c-1)!=0)cost++;cou2+=b*cost;if(want-want/c>c-1)ans+=cou1,now=want;else ans+=cou2,now=0;}}Cout(ans);}q--;if(q==0)break;}return 0;}