SuDoKu SoLvEr
Программа решающая судоку
Решил при помощи рекурсивного перебора
Вводишь n и m, затем заполняется таблица n•n строк и m•m столбцов
Все пробелы заполняются "0"
input:
3 3
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 ...
••••↓••••
••••↑••••
#include<fstream>
#include<string>
#include<algorithm>
#include<vector>
using namespace std;
ifstream in("input.txt");
ofstream out("output.txt");
vector<string>v;
bool check(string s){
for(int i=0;i<v.size();i++){
if(v[i]==s)return false;
}
return true;
}
void variant(string s,int k){
for(int i=k;i<s.size();i++){
swap(s[k],s[i]);
variant(s,k+1);
if(k==s.size()-2&&check(s)==true)v.push_back(s);
}
}
int main(){
string s;
in>>s;
if(s.size()==1)out<<s;
int k=0;
variant(s,k);
for(int i=0;i ...