Submission #1303736

#TimeUsernameProblemLanguageResultExecution timeMemory
1303736JahonaliXArranging Shoes (IOI19_shoes)C++20
30 / 100
1134 ms1052528 KiB
#include "shoes.h"
#include <bits/stdc++.h>

using namespace std;

long long count_swaps(vector<int> s) {
    int n = s.size();
    vector<int> dp(1 << n, 100000000000000000ll);
    dp[0] = 0;
    for (int mask = 0; mask < (1 << n); ++mask) {
        int l = -1;
        for (int i = 0; i < n; ++i) {
            l += mask >> i & 1;
            int r = -1;
            for (int j = 0; j < n; ++j) {
                r += mask >> j & 1;
                if (mask >> i & 1 && mask >> j & 1 && s[i] == -s[j] && s[i] > 0) {
                    dp[mask] = min(dp[mask], dp[mask ^ (1 << i) ^ (1 << j)] + l + r + (r > l) - 1);
                }
            }
        }
    };
    return dp.back();
}

Compilation message (stderr)

shoes.cpp: In function 'long long int count_swaps(std::vector<int>)':
shoes.cpp:8:28: warning: overflow in conversion from 'long long int' to 'std::vector<int>::value_type' {aka 'int'} changes value from '100000000000000000' to '1569325056' [-Woverflow]
    8 |     vector<int> dp(1 << n, 100000000000000000ll);
      |                            ^~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...