/ SeriousOJ /

Record Detail

Wrong Answer


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 324.0 KiB
#2 Wrong Answer 23ms 584.0 KiB
#3 Wrong Answer 22ms 568.0 KiB

Code

#include <bits/stdc++.h>
using namespace std;
#define SC               scanf
#define PF               printf
#define ull              unsigned long long
#define ld               long double
#define F                first
#define S                second
#define pb               push_back
#define sort_a(a)        sort(a.begin(),a.end());
#define sort_d(a)        sort(a.rbegin(),a.rend());
#define READ(f)          freopen(f, "r", stdin)
#define WRITE(f)         freopen(f, "w", stdout)
#define rev(s)           reverse(s.begin(),s.end())
#define P(ok)            cout << (ok ? "YES\n": "NO\n")
#define __Heart__              ios_base :: sync_with_stdio(false); cin.tie(NULL);
#define ll long long
typedef pair< ll , ll>                   PII;
void solve()
{
   ll n ; cin >> n ; ll dp[3][n + 1] , a[n + 1] ;
   for(int i = 1 ; i <= n ; i++) cin >> a[i] , dp[0][i] = dp[1][i] = dp[2][i] = 0 ;
   dp[0][1] = a[1] , dp[1][2] = a[2] , dp[2][3] = a[3];
   int posA = 1 , posB = 2 , posC = 3 ;
   for(int i = 4 ; i <= n ; i+=3 ) {dp[0][i] = dp[0][i - 3] + a[i] ; posA = i ;}
   for(int i = 5 ; i <= n ; i+=3 ) {dp[1][i] = dp[1][i - 3] + a[i] ; posB = i ;}
   for(int i = 6 ; i <= n ; i+=3 ) {dp[2][i] = dp[2][i - 3] + a[i] ; posC = i ;}
   ll x = dp[0][posA] + dp[1][posB] + min( dp[0][posA] , dp[1][posB]) ;
   ll y = dp[1][posB] + dp[2][posC] + min( dp[1][posB] , dp[2][posC]);
   ll z = dp[0][posA] + dp[2][posC] + min( dp[0][posA] , dp[2][posC]);
   ll Ans = min({x , y , z}) ;
   cout << Ans << "\n" ;
}
int main()
{
     __Heart__
     int t ; cin >> t ; while(t--) solve() ;
}

Information

Submit By
Type
Submission
Problem
P1087 Face the monsters
Language
C++20 (G++ 13.2.0)
Submit At
2024-08-21 01:35:27
Judged At
2024-11-11 03:06:45
Judged By
Score
5
Total Time
23ms
Peak Memory
584.0 KiB