답안 #371166

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
371166 2021-02-26T02:55:02 Z CodePlatina Lamps (JOI19_lamps) C++17
4 / 100
73 ms 27836 KB
#include <iostream>
#include <algorithm>
#include <vector>
#include <utility>
#include <tuple>
#include <string>
#define pii pair<int, int>
#define pll pair<long long, long long>
#define piii pair<int, pii>
#define plll pair<long long, pll>
#define tiii tuple<int, int, int>
#define tiiii tuple<int, int, int, int>
#define tlll tuple<long long, long long, long long>
#define tllll tuple<long long, long long, long long, long long>
#define ff first
#define ss second
#define ee ss.ff
#define rr ss.ss
#define DEBUG
using namespace std;

const int INF = (int)1e9;

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);

    int n; cin >> n;
    string s, t; cin >> s >> t;

    int dp[n + 1][6]{};
    for(int i = 1; i < 6; ++i) dp[0][i] = INF;
    for(int i = 0; i < n; ++i)
    {
        for(int j = 0; j < 6; ++j)
        {
            if(j == 0 && s[i] == t[i] || j == 1 && t[i] == '0' || j == 2 && t[i] == '1' ||
               j == 3 && s[i] != t[i] || j == 4 && t[i] == '1' || j == 5 && t[i] == '0')
            {
                dp[i + 1][j] = INF;
                for(int k = 0; k < 6; ++k)
                {
                    int tmp = dp[i][k];
                    if(j % 3 != 0 && j % 3 != k % 3) ++tmp;
                    if(j % 2 != 0 && j % 2 != k % 2) ++tmp;
                    dp[i + 1][j] = min(dp[i + 1][j], tmp);
                }
            }
            else dp[i + 1][j] = INF;
        }
    }

    int ans = INF;
    for(int j = 0; j < 6; ++j) ans = min(ans, dp[n][j]);
    cout << ans;
}

Compilation message

lamp.cpp: In function 'int main()':
lamp.cpp:38:23: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
   38 |             if(j == 0 && s[i] == t[i] || j == 1 && t[i] == '0' || j == 2 && t[i] == '1' ||
lamp.cpp:38:74: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
   38 |             if(j == 0 && s[i] == t[i] || j == 1 && t[i] == '0' || j == 2 && t[i] == '1' ||
      |                                                                   ~~~~~~~^~~~~~~~~~~~~~
lamp.cpp:39:23: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
   39 |                j == 3 && s[i] != t[i] || j == 4 && t[i] == '1' || j == 5 && t[i] == '0')
lamp.cpp:39:49: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
   39 |                j == 3 && s[i] != t[i] || j == 4 && t[i] == '1' || j == 5 && t[i] == '0')
      |                                          ~~~~~~~^~~~~~~~~~~~~~
lamp.cpp:39:74: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
   39 |                j == 3 && s[i] != t[i] || j == 4 && t[i] == '1' || j == 5 && t[i] == '0')
      |                                                                   ~~~~~~~^~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
4 Correct 1 ms 364 KB Output is correct
5 Correct 1 ms 364 KB Output is correct
6 Correct 1 ms 364 KB Output is correct
7 Correct 1 ms 364 KB Output is correct
8 Correct 1 ms 384 KB Output is correct
9 Correct 1 ms 364 KB Output is correct
10 Correct 1 ms 396 KB Output is correct
11 Correct 1 ms 364 KB Output is correct
12 Correct 1 ms 364 KB Output is correct
13 Incorrect 1 ms 364 KB Output isn't correct
14 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
4 Correct 1 ms 364 KB Output is correct
5 Correct 1 ms 364 KB Output is correct
6 Correct 1 ms 364 KB Output is correct
7 Correct 1 ms 364 KB Output is correct
8 Correct 1 ms 384 KB Output is correct
9 Correct 1 ms 364 KB Output is correct
10 Correct 1 ms 396 KB Output is correct
11 Correct 1 ms 364 KB Output is correct
12 Correct 1 ms 364 KB Output is correct
13 Incorrect 1 ms 364 KB Output isn't correct
14 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
4 Correct 1 ms 364 KB Output is correct
5 Correct 1 ms 364 KB Output is correct
6 Correct 1 ms 364 KB Output is correct
7 Correct 72 ms 27836 KB Output is correct
8 Correct 72 ms 27836 KB Output is correct
9 Correct 71 ms 27836 KB Output is correct
10 Correct 71 ms 27836 KB Output is correct
11 Correct 73 ms 27836 KB Output is correct
12 Correct 70 ms 27836 KB Output is correct
13 Correct 72 ms 27836 KB Output is correct
14 Correct 72 ms 27836 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
4 Correct 1 ms 364 KB Output is correct
5 Correct 1 ms 364 KB Output is correct
6 Correct 1 ms 364 KB Output is correct
7 Correct 1 ms 364 KB Output is correct
8 Correct 1 ms 384 KB Output is correct
9 Correct 1 ms 364 KB Output is correct
10 Correct 1 ms 396 KB Output is correct
11 Correct 1 ms 364 KB Output is correct
12 Correct 1 ms 364 KB Output is correct
13 Incorrect 1 ms 364 KB Output isn't correct
14 Halted 0 ms 0 KB -