Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #include <vector>
- using namespace std;
- const int n = 10;
- const int m = 6;
- void generate(string statement, int p, vector<string> &states, int &sum) {
- if (p >= m) {
- bool flag = true;
- for (string i : states) {
- int first = statement[(i[0] - '0') - 1] - '0';
- if (i.size() == 3) {
- switch (i[1]) {
- case '<': {
- if (first >= statement[(i[2] - '0') - 1] - '0') {
- flag = false;
- break;
- }
- break;
- }
- case '>': {
- if (first <= statement[(i[2] - '0') - 1] - '0') {
- flag = false;
- break;
- }
- break;
- }
- case '=': {
- if (first != statement[(i[2] - '0') - 1] - '0') {
- flag = false;
- break;
- }
- break;
- }
- }
- }
- else {
- switch (i[1]) {
- case '>': {
- if (first < statement[(i[3] - '0') - 1] - '0') {
- flag = false;
- break;
- }
- break;
- }
- case '<': {
- if (i[2] == '=') {
- if (first > statement[(i[3] - '0') - 1] - '0') {
- flag = false;
- break;
- }
- }
- else {
- if (first == statement[(i[3] - '0') - 1] - '0') {
- flag = false;
- break;
- }
- }
- break;
- }
- }
- }
- }
- if (flag) {
- sum++;
- }
- }
- else{
- for (int i = 0; i < n; i++) {
- generate(statement + to_string(i), p + 1, states, sum);
- }
- }
- }
- int main() {
- vector<string> states;
- ifstream inp("input.txt");
- while (!inp.eof()) {
- string s;
- inp >> s;
- states.push_back(s);
- }
- inp.close();
- int sum = 0;
- generate("", 0, states, sum);
- ofstream out("output.txt");
- out << sum;
- out.close();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement