QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#789629#9627. 算术NULL_SFWA 3ms3684kbC++171.0kb2024-11-27 21:15:142024-11-27 21:15:17

Judging History

你现在查看的是最新测评结果

  • [2024-11-27 21:15:17]
  • 评测
  • 测评结果:WA
  • 用时:3ms
  • 内存:3684kb
  • [2024-11-27 21:15:14]
  • 提交

answer

#include <iostream>

#define int long long

using namespace std;

const int mod=998244353;

int a[10];

int quick_pow(int base,int index)
{
	int ans=1,tmp=base;
	
	while(index){
		if(index&1){
			ans*=tmp;
			ans%=mod;
		}
		tmp*=tmp;
		tmp%=mod;
		index>>=1;
	}
	
	return ans;
}

int get_inv(int x)
{
	return quick_pow(x,mod-2);
}

void solve()
{
	int ans=1,mini=10;
	
	for(int i=1;i<=9;i++){
		cin>>a[i];
		if(a[i] && i>2) mini=min(mini,i);
		
		if(i>2) ans*=quick_pow(i,a[i]),ans%=mod;
	}
	
	if(a[2]<=a[1])
	{
		ans*=quick_pow(3,a[2]),ans%=mod;
		a[1]-=a[2];
		if(a[2]) mini=min(mini,3ll);
		
		while(a[1]>=3){
			ans*=3;
			ans%=mod;
			
			a[1]-=3;
			mini=min(mini,3ll);
		}
		if(a[1]==1) ans=(ans==1)?1:ans*get_inv(mini)*(mini+1),ans%=mod;
		else if(a[1]==2) ans*=2,ans%=mod;
	}
	else
	{
		ans*=quick_pow(3,a[2]),ans%=mod;
		a[2]-=a[1];
		
		ans*=quick_pow(2,a[2]),ans%=mod;
	}
	
	cout<<ans<<'\n';
	
	return;
}

signed main()
{
	int t;
	cin>>t;
	while(t--){
		solve();
	}
	
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3684kb

input:

7
5 3 0 0 0 0 0 0 0
4 1 1 1 0 0 0 0 0
1 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 1
1 0 0 0 0 0 0 0 2
99 88 77 66 55 44 33 22 11
100 90 80 70 60 50 40 30 20

output:

54
108
1
10
90
90553232
143532368

result:

ok 7 lines

Test #2:

score: -100
Wrong Answer
time: 3ms
memory: 3612kb

input:

1000
22 80 50 23 35 71 81 70 96
40 33 36 2 51 52 96 5 32
56 35 85 13 58 80 26 14 31
60 21 8 19 79 5 94 44 33
85 55 10 59 76 98 28 22 69
14 72 40 14 100 68 5 18 69
95 42 51 0 32 97 37 34 85
54 33 18 40 34 10 72 72 68
81 47 80 23 23 68 40 3 71
58 7 36 79 89 83 5 68 16
30 3 82 79 35 28 30 55 88
17 86 2...

output:

898812281
321820208
765709043
819408880
639261805
663439611
7172464
780360907
240853384
151457742
298466126
921095124
124742738
528606186
493291429
606837650
409158325
951979430
573807795
577711348
440485591
163247072
78098984
451532434
308024444
168349368
423889166
63219983
827159852
914298923
4652...

result:

wrong answer 1st lines differ - expected: '376701872', found: '898812281'