結果
| 問題 |
No.555 世界史のレポート
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2017-11-04 17:15:28 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 969 bytes |
| コンパイル時間 | 1,347 ms |
| コンパイル使用メモリ | 168,416 KB |
| 実行使用メモリ | 13,640 KB |
| 最終ジャッジ日時 | 2024-11-23 18:01:55 |
| 合計ジャッジ時間 | 32,201 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| 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;
unordered_set<ll> get(ll a) {
unordered_set<ll> s;
for(ll i=1;i*2<=a;i++) {
if(a%i==0) s.insert(i);
}
unordered_set<ll> ret;
for(ll i:s) { ret.insert(i); ret.insert(a/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) {
unordered_set<ll> 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;
}