Submission #109586

#TimeUsernameProblemLanguageResultExecution timeMemory
109586ArturgoLamps (JOI19_lamps)C++14
47 / 100
1065 ms63748 KiB
#include <iostream> #include <bitset> using namespace std; int nbCars; string deb, fin; int dyn[1000001][16]; inline bool execute(bool init, bitset<4> bits) { if(bits[0]) init = 0; if(bits[1]) init = 1; if(bits[2]) init = 0; if(bits[3]) init = !init; return init; } int main() { ios_base::sync_with_stdio(false); cin >> nbCars; cin >> deb >> fin; for(int sol = 0;sol < 16;sol++) { dyn[nbCars][sol] = bitset<4>(sol).count(); } for(int pos = nbCars - 1;pos >= 0;pos--) { for(int iBits = 0;iBits < 16;iBits++) { bitset<4> bits(iBits); int mini = 1000 * 1000; for(int sol = 0;sol < 16;sol++) { bitset<4> nouv(sol); if(execute(deb[pos] - '0', nouv) == fin[pos] - '0') { mini = min(dyn[pos + 1][sol] + (int)(nouv ^ bits).count(), mini); } } dyn[pos][iBits] = mini; } } cout << dyn[0][0] / 2 << endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...