UOJ Logo

NOI.AC

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#212303#3812. T2sublimetext1034ms1656kbC++11935b2024-10-13 18:27:072024-10-13 19:40:05

answer

#include <bits/stdc++.h>
using namespace std;
#define LL __int128
#define ll long long
#define uLL __uint128_t
#define ull unsigned long long
#define REP(i, l, r) for(int i = l; i <= r; ++i)
#define PER(i, r, l) for(int i = r; i >= l; --i)
namespace ink {
	const int N = 1e5 + 5, mod=998244353;
	int n;
	int a[N],b[N];
	int main() {
		ios::sync_with_stdio(false);
		cin.tie(0), cout.tie(0);
		cin >> n;
		int maxa=0;
		REP(i, 1, n) {
			cin >> a[i];
			if(i>1)maxa=max(maxa, a[i]);
		}
		if(maxa*2<a[1]) {
			int m=1;
			REP(i,2,n)m=1ll*m*a[i]%mod;
			cout<<m<<'\n';
			return 0;
		}
		sort(a+1,a+1+n);
		int cnt=0;
		std::function<void(int) >dfs=[&](int u) {
			if(u>=n){
				int s=0;
				REP(i,1,n-1) s^=b[i];
				if(s<=a[n])++cnt;
				return;
			}
			REP(i,0,a[u]) {
				b[u]=i;
				dfs(u+1);
			}
		};
		dfs(1);
		cout<<cnt<<'\n';
		return 0;
	}
}

signed main() {return ink::main();}

详细

小提示:点击横条可展开更详细的信息

Subtask #1:

score: 10
Accepted

Test #1:

score: 10
Accepted
time: 0ms
memory: 1276kb

input:

10
3 5 0 1 0 3 5 4 2 5

output:

13248

result:

ok 1 number(s): "13248"

Subtask #2:

score: 0
Time Limit Exceeded

Test #2:

score: 0
Time Limit Exceeded

input:

100000
25 0 7 1 42 27 29 17 26 23 11 4 24 40 31 10 6 16 26 26 46 27 7 32 9 33 17 15 4 44 36 29 19 17...

output:


result:


Subtask #3:

score: 0
Time Limit Exceeded

Test #3:

score: 0
Time Limit Exceeded

input:

100000
14 25 9 27 9 33 48 28 10 29 28 39 50 33 8 18 38 0 34 25 13 7 30 48 13 39 14 11 40 8 32 3 7 16...

output:


result:


Subtask #4:

score: 0
Wrong Answer

Test #4:

score: 0
Wrong Answer
time: 17ms
memory: 1652kb

input:

100000
999998102 402961903 309346107 445160702 274308544 145846539 341002420 77841978 313436667 3206...

output:

239096175

result:

wrong answer 1st numbers differ - expected: '714756233', found: '239096175'

Subtask #5:

score: 0
Wrong Answer

Test #5:

score: 0
Wrong Answer
time: 7ms
memory: 1656kb

input:

100000
999998479 400795186 127605328 439009686 279338791 222344190 32214702 347490239 390113609 1737...

output:

562577410

result:

wrong answer 1st numbers differ - expected: '885251777', found: '562577410'

Subtask #6:

score: 0
Wrong Answer

Test #6:

score: 0
Wrong Answer
time: 10ms
memory: 1652kb

input:

100000
999980995 341927799 474797020 355936070 215296904 77682610 413850993 194378088 233473841 3566...

output:

444788264

result:

wrong answer 1st numbers differ - expected: '99729538', found: '444788264'

Subtask #7:

score: 0
Time Limit Exceeded

Test #7:

score: 0
Time Limit Exceeded

input:

2000
540706819 309629779 17707890 194083691 334726587 456162964 498417390 246765617 957682339 604730...

output:


result:


Subtask #8:

score: 0
Time Limit Exceeded

Test #8:

score: 0
Time Limit Exceeded

input:

2000
101722906 988313572 550840902 777765553 778991206 95817204 989809443 357040014 425595004 794587...

output:


result:


Subtask #9:

score: 0
Time Limit Exceeded

Test #9:

score: 0
Time Limit Exceeded

input:

100000
327468559 836395032 98737045 14714567 147268924 355455125 829199457 117664948 79547712 117935...

output:


result:


Subtask #10:

score: 0
Time Limit Exceeded

Test #10:

score: 0
Time Limit Exceeded

input:

100000
334373908 573410989 584461609 757523993 595819683 93095595 866600961 552146722 657326632 1804...

output:


result: