結果

問題 No.1409 Simple Math in yukicoder
ユーザー publfl
提出日時 2021-02-26 22:48:39
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 960 bytes
コンパイル時間 659 ms
コンパイル使用メモリ 55,536 KB
実行使用メモリ 6,824 KB
最終ジャッジ日時 2024-10-02 15:34:56
合計ジャッジ時間 50,548 ms
ジャッジサーバーID
(参考情報)
judge1 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 1 WA * 57
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.cpp: In function 'int main()':
main.cpp:52:58: warning: 'primitive' may be used uninitialized [-Wmaybe-uninitialized]
   52 |                 for(int i=1;i<=b;i++) ans.push_back(power(primitive,a*i,p));
      |                                                     ~~~~~^~~~~~~~~~~~~~~~~
main.cpp:43:21: note: 'primitive' was declared here
   43 |                 int primitive;
      |                     ^~~~~~~~~

ソースコード

diff #

#include <stdio.h>
#include <vector>
#include <algorithm>

long long int power(long long int a, long long int b, int p)
{
	long long int ans = 1;
	long long int k = a;
	while(b)
	{
		if(b%2==1) ans*=k, ans%=p;
		k*=k, k%=p;
		b/=2;
	}
	return ans;
}
long long int inv(long long int a, int p)
{
	return power(a,p-2,p);
}

long long int fact[110];
std::vector<int> ans;
long long int check[100010];
int main()
{
	fact[0] = 1;
	int T;
	scanf("%d",&T);
	while(T--)
	{
		ans.clear();
		int a,b;
		scanf("%d%d",&a,&b);
		if(a==1&&b==1)
		{
			printf("1\n");
			continue;
		}
		
		int p = a*b+1;
		
		int primitive;
		for(int i=2;i<=a*b;i++)
		{
			for(int j=1;j<=a*b;j++) check[j] = (check[j-1]*i)%p;
			for(int j=1;j<a*b;j++) if(check[j]==1) goto u;
			primitive = i;
			break;
			u:;
		}
		for(int i=1;i<=b;i++) ans.push_back(power(primitive,a*i,p));
		std::sort(ans.begin(),ans.end());
		
		for(int i=0;i<ans.size();i++) printf("%d ",ans[i]);
		printf("\n");
	}
}
0