結果
| 問題 |
No.555 世界史のレポート
|
| ユーザー |
|
| 提出日時 | 2017-11-04 17:12:12 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 849 bytes |
| コンパイル時間 | 1,772 ms |
| コンパイル使用メモリ | 163,080 KB |
| 実行使用メモリ | 13,768 KB |
| 最終ジャッジ日時 | 2024-11-23 18:00:28 |
| 合計ジャッジ時間 | 32,821 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 10 TLE * 10 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define REP(i,n) FOR(i,0,n)
#define FOR(i,a,b) for(ll i=a;i<b;i++)
#define PB push_back
#define LB lower_bound
#define UB upper_bound
#define PQ priority_queue
#define UM unordered_map
#define ALL(a) (a).begin(),(a).end()
#define MOD 1000000007
typedef vector<ll> vi;
typedef vector<vector<ll>> vvi;
const ll INF = (1ll << 30);
typedef pair<ll,ll> pii;
struct Edge{ ll s,t,c; };
typedef vector<vector<ll>> Graph;
typedef vector<pii> vpii;
vi get(ll a) {
vi ret;
for(ll i=1;i*2<=a;i++) {
if(a%i==0) ret.PB(i);
}
return ret;
}
int main() {
ll N,C,V; cin>>N>>C>>V;
vi A(2*N+1,INF);
A[1]=0;
FOR(i,2,2*N+1) {
vi v=get(i);
for(ll j:v) {
A[i]=min(A[i],A[j]+C+V*(i/j-1));
}
}
ll ans=INF;
FOR(i,N,2*N+1) ans=min(ans,A[i]);
cout<<ans<<endl;
}