/ SeriousOJ /

Record Detail

Wrong Answer


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 532.0 KiB
#2 Wrong Answer 21ms 584.0 KiB
#3 Wrong Answer 21ms 568.0 KiB
#4 Wrong Answer 21ms 532.0 KiB
#5 Wrong Answer 21ms 1.02 MiB
#6 Wrong Answer 29ms 6.52 MiB
#7 Wrong Answer 29ms 6.523 MiB
#8 Wrong Answer 25ms 6.52 MiB
#9 Wrong Answer 48ms 6.52 MiB
#10 Wrong Answer 25ms 6.562 MiB
#11 Wrong Answer 24ms 6.52 MiB
#12 Wrong Answer 29ms 6.52 MiB
#13 Wrong Answer 30ms 6.656 MiB
#14 Wrong Answer 18ms 6.633 MiB
#15 Wrong Answer 17ms 6.52 MiB
#16 Accepted 16ms 6.52 MiB
#17 Wrong Answer 9ms 2.312 MiB
#18 Wrong Answer 7ms 788.0 KiB
#19 Accepted 10ms 836.0 KiB
#20 Accepted 46ms 6.52 MiB

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-08-21 01:35:27
Judged By
Score
20
Total Time
48ms
Peak Memory
6.656 MiB