提出 #41049262
ソースコード 拡げる
//This code is written by hmz,and hmz is cute!!!
#include<bits/stdc++.h>
using namespace std;
#define TY long long
#define umap unordered_map
#define ull unsigned long long
#define pq priority_queue
#define mp make_pair
#define mod (TY)(1e9+7)
#define MAXN 50000005
#define MAXM 200005
#define MAXK 27
#define INF (TY)1e9
#define Birthday 20090321
#define Read(name) freopen(#name,"r",stdin);
#define Write(name) freopen(#name,"w",stdout);
#define For(i,a,b) for(TY i=(a);i<=(b);++i)
#define FOR(i,a,b) for(TY i=(a);i<(b);++i)
#define Rof(i,a,b) for(TY i=(a);i>=(b);--i)
#define ROF(i,a,b) for(TY i=(a);i>(b);--i)
inline TY qr(){
TY x=0,f=1;char op=getchar();
for(;op<'0'||op>'9';op=getchar())if(op=='-')f=-1;
for(;op>='0'&&op<='9';op=getchar())x=x*10+(op^48);
return x*f;
}inline bool ischar(char op){
if(op>='a'&&op<='z')return true;
if(op>='A'&&op<='Z')return true;
return false;
}inline char getc(){
char op=getchar();
while(!ischar(op))op=getchar();
return op;
}inline string qs(){
string op="";char u=getchar();
while(!ischar(u))u=getchar();
while(ischar(u))op+=u,u=getchar();
return op;
}inline void qw(TY x){
if(!x){putchar('0');return;}
if(x<0)putchar('-'),x=-x;
if(x>=10)qw(x/10);putchar(x%10+'0');
}inline void qw(TY x,char op){qw(x),putchar(op);}
inline void ws(string s){FOR(i,0,s.size())putchar(s[i]);}
inline TY Ceil(TY a,TY b){return a/b+(a%b!=0);}
inline TY Mod(TY a){return (a>=mod?a-mod:a);}
inline TY Abs(TY a,TY b){return a>b?a-b:b-a;}
inline TY Pow(TY a,TY b){
TY ans=1,base=a;
while(b){
if(b&1)ans=ans*base%mod;
base=base*base%mod;b>>=1;
}return ans;
}TY n,p,ans,have[100001],cnt,a[MAXN],b[MAXN],ca,cb;
inline bool isprime(TY now){
FOR(i,2,now)if(now%i==0)return false;
return true;
}inline void dfs(TY now,TY sum,bool op){
if((op==0&&now==cnt/2+1)||(op==1&&now==cnt+1))return;
dfs(now+1,sum,op);TY k=sum*have[now];
if(k<=n){
if(op==0)a[++ca]=k;else b[++cb]=k;
dfs(now,k,op);
}
}
int main(){
n=qr();p=qr();
For(i,2,p)if(isprime(i))have[++cnt]=i;
random_shuffle(have+1,have+1+cnt);
dfs(1,1,0);dfs(cnt/2+1,1,1);a[++ca]=1;b[++cb]=1;
sort(a+1,a+1+ca);sort(b+1,b+1+cb);
TY id=cb;
For(i,1,ca){
while(id&&b[id]*a[i]>n)--id;
ans+=id;
}qw(ans);
return 0;
}
提出情報
提出日時
2023-04-29 22:32:24+0900
問題
G - P-smooth number
ユーザ
hmzqwq
言語
C++ (GCC 9.2.1)
得点
600
コード長
2297 Byte
結果
AC
実行時間
658 ms
メモリ
63208 KiB
コンパイルエラー
./Main.cpp: In function ‘void qw(long long int)’:
./Main.cpp:42:2: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
42 | if(x>=10)qw(x/10);putchar(x%10+'0');
| ^~
./Main.cpp:42:20: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
42 | if(x>=10)qw(x/10);putchar(x%10+'0');
| ^~~~~~~
./Main.cpp: In function ‘void ws(std::string)’:
./Main.cpp:18:34: warning: comparison of integer expressions of different signedness: ‘long long int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
18 | #define FOR(i,a,b) for(TY i=(a);i<(b);++i)
| ^
./Main.cpp:44:26: note: in expansion of macro ‘FOR’
44 | inline void ws(string s){FOR(i,0,s.size())putchar(s[i]);}
| ^~~
ジャッジ結果
セット名
Sample
All
得点 / 配点
0 / 0
600 / 600
結果
セット名
テストケース
Sample
sample_01.txt, sample_02.txt
All
hack_01.txt, sample_01.txt, sample_02.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt
ケース名
結果
実行時間
メモリ
hack_01.txt
AC
650 ms
62876 KiB
sample_01.txt
AC
2 ms
3544 KiB
sample_02.txt
AC
656 ms
63208 KiB
test_01.txt
AC
4 ms
3428 KiB
test_02.txt
AC
2 ms
3432 KiB
test_03.txt
AC
2 ms
3544 KiB
test_04.txt
AC
658 ms
63176 KiB
test_05.txt
AC
484 ms
48524 KiB
test_06.txt
AC
412 ms
41772 KiB
test_07.txt
AC
307 ms
32380 KiB
test_08.txt
AC
365 ms
37404 KiB
test_09.txt
AC
241 ms
25872 KiB
test_10.txt
AC
249 ms
26780 KiB
test_11.txt
AC
153 ms
18148 KiB
test_12.txt
AC
171 ms
19796 KiB
test_13.txt
AC
77 ms
10772 KiB
test_14.txt
AC
655 ms
63176 KiB
test_15.txt
AC
485 ms
48428 KiB
test_16.txt
AC
412 ms
41668 KiB
test_17.txt
AC
576 ms
56584 KiB
test_18.txt
AC
416 ms
42152 KiB
test_19.txt
AC
627 ms
60692 KiB
test_20.txt
AC
573 ms
56384 KiB
test_21.txt
AC
446 ms
44568 KiB
test_22.txt
AC
471 ms
47176 KiB
test_23.txt
AC
568 ms
55436 KiB
test_24.txt
AC
545 ms
53940 KiB
test_25.txt
AC
568 ms
55200 KiB
test_26.txt
AC
4 ms
3620 KiB
test_27.txt
AC
2 ms
3588 KiB
test_28.txt
AC
244 ms
25932 KiB
test_29.txt
AC
11 ms
4064 KiB
test_30.txt
AC
65 ms
8880 KiB