QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#690436#9353. Interesting PermutationzqxWA 55ms5592kbC++231.1kb2024-10-30 22:10:162024-10-30 22:10:18

Judging History

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

  • [2024-10-30 22:10:18]
  • 评测
  • 测评结果:WA
  • 用时:55ms
  • 内存:5592kb
  • [2024-10-30 22:10:16]
  • 提交

answer

#include<bits/stdc++.h>
#define int long long 
#define AC return 0;
#define pii pair<int,int>
#define all(tar) tar.begin(),tar.end()
const int maxx=1e6+5;
const int mod=1e9+7; 
using namespace std;
int n,m,t;
int h[maxx];
void solve(){
	 cin>>n;
	 for(int i=1;i<=n;i++)cin>>h[i];//mx-mi;
	 //大部分时候h[i]=h[i-1]
	 for(int i=1;i<=n;i++){
		if(h[i]<h[i-1]||h[i]>=n){
			cout<<0<<'\n';
			return ;
		}
	 } 
	 vector<int>dp(n+1,0);
	 vector<int>pre(n+1,0);
	 dp[2]=2*(n-h[2]);
	 pre[1]=1;
	 pre[2]=2;
	//  cout<<dp[2]<<'\n';
	 if(h[1]!=0||h[2]==h[1]){
		cout<<0<<'\n';
		return ;
	 }
	 for(int i=3;i<=n;i++){
		if(h[i]==h[i-1]){
           pre[i]=pre[i-1];
		   int c=h[i]-(i-pre[i]);
		   if(c<=0){
			  cout<<0<<'\n';
			  return ;
		   }else {
             dp[i]=dp[i-1]*c%mod;	;
		   }
		}else {
		  pre[i]=i;
          int x=h[i]-h[i-1];
		  if(h[i-1]+1+x<=n){
			 dp[i]=dp[i-1];
		  }
		}
	 }
	 cout<<dp[n]<<'\n';
}
signed main(){
   ios::sync_with_stdio(false);
   cin.tie(0);
   cout.tie(0);
   cin>>t;
   while(t--){
	  solve();
   }
   AC
}   

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

3
3
0 2 2
3
0 1 2
3
0 2 3

output:

2
4
0

result:

ok 3 lines

Test #2:

score: -100
Wrong Answer
time: 55ms
memory: 5592kb

input:

10039
14
5 6 7 8 9 10 11 12 13 13 13 13 13 13
14
0 5 6 7 8 9 10 11 12 13 14 14 14 14
1
1
14
0 5 4 8 9 10 11 12 13 13 13 13 13 13
45
0 1 1 2 2 3 5 5 6 6 8 9 11 13 15 17 18 18 20 22 22 24 26 26 26 26 27 27 27 28 30 32 32 33 34 34 34 36 36 38 38 38 39 39 44
24
0 2 3 5 7 9 9 10 11 12 13 14 14 14 14 15 1...

output:

0
0
0
0
0
906878955
2772000
60480
132125738
0
119618791
70698727
32854322
262459867
64381928
36
510030057
2882880
2
623864306
266590077
928316417
0
2
0
749722298
0
0
72765375
0
0
601766295
120
896921735
10080
0
981046471
0
190647348
581311636
2
339292800
22176
0
0
2
0
2
88982982
0
0
0
0
4
604026866
...

result:

wrong answer 6th lines differ - expected: '0', found: '906878955'