提出 #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;
}

提出情報

提出日時
問題 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
結果
AC × 2
AC × 33
セット名 テストケース
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