제출 #129169

#제출 시각아이디문제언어결과실행 시간메모리
129169mahmoudbadawyLamps (JOI19_lamps)C++17
6 / 100
1075 ms4928 KiB
#include <bits/stdc++.h> using namespace std; string a,b; int n; int dis[(1<<18)]; int conv(string s) { int res=0; for(int i=0;i<s.size();i++) res=res*2+(s[i]-'0'); return res; } int main() { cin >> n >> a >> b; queue<int> q; q.push(conv(a)); int bb=conv(b); memset(dis,-1,sizeof dis); dis[conv(a)]=0; while(q.size()) { int s=q.front(); q.pop(); if(s==bb) break; for(int i=0;i<n;i++) { int sd=s; for(int j=i;j<n;j++) { sd&=(~(1<<j)); if(dis[sd]!=-1) continue; dis[sd]=dis[s]+1; q.push(sd); } } for(int i=0;i<n;i++) { int sd=s; for(int j=i;j<n;j++) { sd|=(1<<j); if(dis[sd]!=-1) continue; dis[sd]=dis[s]+1; q.push(sd); } } for(int i=0;i<n;i++) { int sd=s; for(int j=i;j<n;j++) { sd^=(1<<j); if(dis[sd]!=-1) continue; dis[sd]=dis[s]+1; q.push(sd); } } } cout << dis[bb] << endl; }

컴파일 시 표준 에러 (stderr) 메시지

lamp.cpp: In function 'int conv(std::__cxx11::string)':
lamp.cpp:12:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0;i<s.size();i++)
              ~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...