結果
問題 | No.473 和と積の和 |
ユーザー |
![]() |
提出日時 | 2016-12-23 16:25:46 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 27 ms / 3,000 ms |
コード長 | 580 bytes |
コンパイル時間 | 1,744 ms |
コンパイル使用メモリ | 168,068 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-12-16 04:43:13 |
合計ジャッジ時間 | 2,929 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 43 |
コンパイルメッセージ
main.cpp:29:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type] 29 | main(){ | ^~~~
ソースコード
#include <bits/stdc++.h> using namespace std; int n,r; int d[110]; vector<int> v; void f(int i,int j){ if(i==v.size()){ for(j=0;j<n;++j){ if(d[j]<2)return; } ++r; }else{ if(i==0||v[i]!=v[i-1]){ j=0; } for(;j<n;++j){ if(j==0||d[j]!=d[j-1]){ int s=d[j]; d[j]*=v[i]; f(i+1,j); d[j]=s; } } } } main(){ int x; scanf("%d%d",&n,&x); ++x; for(int i=2;i*i<=x;){ if(x%i==0){ v.push_back(i); x/=i; }else{ ++i; } } v.push_back(x); if(v.size()>=n){ for(int i=0;i<n;++i){ d[i]=1; } f(0,0); } printf("%d\n",r); }