QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#617893#7624. Mystery of PrimeSound_Medium#WA 2ms4832kbC++231.6kb2024-10-06 17:33:262024-10-06 17:33:26

Judging History

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

  • [2024-10-06 17:33:26]
  • 评测
  • 测评结果:WA
  • 用时:2ms
  • 内存:4832kb
  • [2024-10-06 17:33:26]
  • 提交

answer

#include <bits/stdc++.h>
#define int long long
using namespace std;
int n, m;
const int N=2e5+10;
vector<int>primes(N);
bool st[N];
int cnt;
void get_primes(int n)
{
    for (int i = 2; i <= n; i ++ )
    {
        if (!st[i]) primes[cnt ++ ] = i;
        for (int j = 0; primes[j] <= n / i; j ++ )
        {
            st[primes[j] * i] = true;
            if (i % primes[j] == 0) break;
        }
    }
}
int a[N];
void solve () {
    cin>>n;
    vector<vector<int>>dp(n+2,vector<int>(5,1e18));
    for(int i=1;i<=n;i++)cin>>a[i];
    if(!st[a[1]])dp[1][0]=0;
    dp[1][1]=1;
    dp[1][2]=1;
    for(int i=2;i<=n;i++){
        if(a[i]%2==0){
            dp[i][0]=dp[i-1][1];
        }
        else {
            dp[i][0]=dp[i-1][2];
        }
        if(!st[a[i]+a[i-1]]){
            dp[i][0]=min(dp[i][0],dp[i-1][0]);
        }
        if(a[i-1]==1){
            dp[i][1]=min(dp[i-1][0],dp[i-1][2])+1;
            dp[i][2]=min(dp[i-1][0],dp[i-1][1])+1;
            continue;
        }
        if(a[i-1]%2==0){
            dp[i][1]=min(dp[i-1][0],dp[i-1][2])+1;
            dp[i][2]=min(dp[i-1][0],dp[i-1][1])+2;
        }
        else{
            dp[i][1]=min(dp[i-1][0],dp[i-1][2])+2;
            dp[i][2]=min(dp[i-1][0],dp[i-1][1])+1;
        }
        
    }
    // for(int i=1;i<=n;i++){
    //     cout<<dp[i][0]<<" "<<dp[i][1]<<endl;
    // }
    cout<<min({dp[n][1],dp[n][0],dp[n][2]})<<endl;
}
signed main () {
    int T = 1; 
    get_primes(200000);
    std::ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
    //cin>>T;
    while (T --) solve ();
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 2ms
memory: 4832kb

input:

6
1 5 1 4 4 1

output:

2

result:

ok 1 number(s): "2"

Test #2:

score: 0
Accepted
time: 2ms
memory: 4828kb

input:

9
30 6 7 12 15 8 20 17 14

output:

4

result:

ok 1 number(s): "4"

Test #3:

score: -100
Wrong Answer
time: 2ms
memory: 4832kb

input:

1568
119 519 706 1003 1317 322 25 1466 816 525 1 1122 38 1511 774 515 274 780 647 230 1602 1051 810 1 1 1232 1 1202 1583 412 1111 168 309 1181 184 1260 491 764 809 1213 804 1470 1 1087 1235 1004 673 1338 1333 1392 1036 1539 268 1 712 727 297 404 1317 36 463 1067 1133 693 931 46 1 100 1608 965 1 1406...

output:

792

result:

wrong answer 1st numbers differ - expected: '733', found: '792'