Submission #235403

#TimeUsernameProblemLanguageResultExecution timeMemory
235403Charis02Lamps (JOI19_lamps)C++14
0 / 100
1092 ms262144 KiB
#include<iostream> #include<stdio.h> #include<vector> #include<cmath> #include<queue> #include<string.h> #include<unordered_map> #include<set> #include<algorithm> #define ll long long #define pi pair < ll,ll > #define mp(a,b) make_pair(a,b) #define mid (low+high)/2 #define rep(i,a,b) for(int i = a;i < b;i++) #define N 300004 #define INF 1e9+7 using namespace std; ll n; string s,t; unordered_map < string,bool > vis; unordered_map < string,ll > steps; void solve() { queue < string > q; q.push(s); vis[s]=true; steps[s] = 0; while(!q.empty()) { string cur = q.front(); q.pop(); string tmp = cur; rep(i,0,n) { tmp = cur; rep(j,i,n) { tmp[j] = '1'; if(!vis[tmp]) { vis[tmp]=true; steps[tmp]=steps[cur]+1; q.push(tmp); } } } rep(i,0,n) { tmp = cur; rep(j,i,n) { tmp[j] = '0'; if(!vis[tmp]) { vis[tmp]=true; steps[tmp]=steps[cur]+1; q.push(tmp); } } } rep(i,0,n) { tmp = cur; rep(j,i,n) { tmp[j] = ((tmp[j]-'0')+1)%2 + '0'; if(!vis[tmp]) { vis[tmp]=true; steps[tmp]=steps[cur]+1; q.push(tmp); } } } } return; } int main() { ios_base::sync_with_stdio(false); cin.tie(0); cin >> n; cin >> s; cin >> t; solve(); cout << steps[t]; 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...