Submission details
Task:Lucky-SAT
Sender:OOliOO_slayer
Submission time:2016-09-13 18:46:07 +0300
Language:C++
Status:COMPILE ERROR

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:28:42: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int i = 0; i < relevant.size(); i++){
                                          ^
input/code.cpp:33:18: warning: variable 'good' set but not used [-Wunused-but-set-variable]
             bool good = false;
                  ^
input/code.cpp:42:13: error: 'good' was not declared in this scope
         if(!good) continue;
             ^

Code

#include <iostream>
#include <vector>
#include <set>

using namespace std;

int main(){
    srand(2349082);
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int nClauses, nVariables;
    cin >> nClauses >> nVariables;
    vector<vector<int> > instance(nClauses, vector<int>(7));
    set<int> relevantset;
    for(int i = 0; i < nClauses; i++){
        for(int j = 0; j < 7; j++){
            cin >> instance[i][j];
            relevantset.insert(abs(instance[i][j]) - 1);
        }
    }
    
    vector<int> relevant(relevantset.begin(), relevantset.end());
    
    vector<bool> assignment(nVariables);

    for(int iter = 0; iter < 300; iter++){
        
        for(int i = 0; i < relevant.size(); i++){
            assignment[relevant[i]] = rand() % 2;
        }
        
        for(int clause = 0; clause < nClauses; clause++){
            bool good = false;
            for(int i = 0; i < 7; i++){
                int variable = instance[clause][i];
                if((variable > 0 && assignment[abs(variable)-1] == true) 
                    || (variable < 0 && assignment[abs(variable)-1] == false))
                    good = true;
            }
        }
        
        if(!good) continue;
        
        // Success
        cout << "SAT" << endl;
        for(int i = 0; i < nVariables; i++){
            cout << assignment[i];
        }
        cout << endl;
        return 0;
    }
    
    cout << "UNSAT" << endl;
}