제출 #238110

#제출 시각아이디문제언어결과실행 시간메모리
238110Dremix10Lamps (JOI19_lamps)C++17
0 / 100
1085 ms115640 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
#define F first
#define S second
#define endl '\n'
#define fastio ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define maxp 22
#define EPS (ld)(1e-18)
#define mod (int)(1e9+7)
#define N (int)(1e5+1)

int fuse(string s){
    int i;
    int num=0;
    for(i=0;i<s.size();i++)
        if(s[i]=='1')
        num+=(1<<i);
    return num;
}

int main (){
fastio;

int n;
cin>>n;

string a,b;
cin>>a>>b;

int i,j,k;
queue <pair<int,int> > q;
q.push({fuse(a),0});
int want=fuse(b);

map<int,bool> v;

while(!q.empty()){
    int start=q.front().F;
    int cost=q.front().S;
    q.pop();

    if(v[start])
        continue;

    v[start]=1;

    if(start==want){
        cout<<cost<<endl;
        return 0;
    }
    cost++;

    for(i=0;i<n;i++)
    for(j=i;j<n;j++){
        int num=0;
        for(k=0;k<n;k++)
            if(i<=k && k<=j)
                num+=(1<<k);
            else if(start&(1<<k))
                num+=(1<<k);
        q.push({num,cost});
    }
    for(i=0;i<n;i++)
    for(j=i;j<n;j++){
        int num=0;
        for(k=0;k<n;k++)
            if(i<=k && k<=j)
                num+=0;
            else if(start&(1<<k))
                num+=(1<<k);
        q.push({num,cost});
    }
    for(i=0;i<n;i++)
    for(j=i;j<n;j++){
        int num=0;
        for(k=0;k<n;k++)
            if(i<=k && k<=j){
                if(!(start&(1<<k)))
                    num+=(1<<k);
            }
            else if(start&(1<<k))
                num+=(1<<k);
        q.push({num,cost});
    }


}



}

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

lamp.cpp: In function 'int fuse(std::__cxx11::string)':
lamp.cpp:18:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(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...