The Code-Bin
Links
Home
Add your code!
All Listings
About
Latest Entry
Featured Scripts
Author's Website
Latest Entries
FFMPEG Thumbnail Scr...
PHP, 0.8KB
Jul. 29, 10:24pm
John
Z80 Assembler, 190 bytes
Feb. 17, 3:36am
John
Z80 Assembler, 176 bytes
Sep. 13, 2:19am
John
Z80 Assembler, 77 bytes
Sep. 13, 2:18am
John
Z80 Assembler, 209 bytes
Sep. 13, 2:17am
untitled C++ Code
Posted by: 234234 | November 22, 2010 @ 3:26pm
C++ Code
[
Download
]
#include <iostream> #include <vector> #include <algorithm> using namespace std; const char* race[] = {"norge", "english", "dutch", "german", "swiss"}; const char* color[] = {"white", "yellow", "green", "red", "blue"}; const char* drink[] = {"water", "coffee", "milk", "beer", "tea"}; const char* pet[] = {"cat", "horse", "bird", "fish", "dog"}; const char* smoke[] = {"dunhil", "marlboro", "pallmall", "morris", "rothmans"}; bool check (vector<vector<int>>& solve, int fill) { for (int i = 0; i < 5; ++i) { switch (fill) { case 4: /* 5 */ if (solve[4][i] == 4) if ((i > 0 && solve[3][i-1] == 0) || (i < 4 && solve[3][i+1] == 0)) /* empty */; else return false; /* 6 */ if (solve[1][i] == 1 && solve[4][i] != 0) return false; /* 7 */ if (solve[0][i] == 3 && solve[4][i] != 1) return false; /* 9 */ if (solve[2][i] == 0) if ((i > 0 && solve[4][i-1] == 4) || (i < 4 && solve[4][i+1] == 4)) /* empty */; else return false; /* 10 */ if (solve[4][i] == 2 && solve[3][i] != 2) return false; /* 14 */ if (solve[4][i] == 3 && solve[2][i] != 3) return false; break; case 3: /* 13 */ if (solve[3][i] == 1 && solve[1][i] != 4) return false; /* 11 */ if (solve[0][i] == 4 && solve[3][i] != 4) return false; break; case 2: /* 4 */ if (solve[0][i] == 2 && solve[2][i] != 4) return false; /* 8 */ if (i == 2 && solve[2][i] != 2) return false; /* 15 */ if (solve[1][i] == 2 && solve[2][i] != 1) return false; break; case 1: /* 2 */ if (solve[0][i] == 1 && solve[1][i] != 3) return false; /* 3a */ if (solve[1][i] == 2 && i < 4 && solve[1][i+1] != 0) return false; /* 3b */ if (solve[1][i] == 2 && i == 4) return false; /* 12 */ if (solve[0][i] == 0) if ((i > 0 && solve[1][i-1] == 4) || (i < 4 && solve[1][i+1] == 4)) /* empty */; else return false; break; case 0: /* 1 */ if (solve[0][i] == 0 && i != 0) return false; } } return true; } void recurse(vector<int>& tmp, vector<vector<int>>& solve, int it) { if (it == 5) { for (int i = 0; i < 5; ++i) { cout << i + 1 << " " << race[solve[0][i]] << " " << color[solve[1][i]] << " "; cout << drink[solve[2][i]] << " " << pet[solve[3][i]] << " " << smoke[solve[4][i]] << " " << endl; } cout << endl; } else { solve[it] = tmp; do { if (!check(solve, it)) continue; recurse(tmp, solve, it + 1); } while(next_permutation(solve[it].begin(), solve[it].end())); } } int main () { vector<vector<int>> solve(6); vector<int> tmp(5); for (int i = 0; i < 5; ++i) tmp[i] = i; recurse(tmp, solve, 0); system("pause"); }
Syntax Highlighting
[
Open in new window
]
Author Comments
none
Rating
4.55 / 8
33 Votes
http://codebin.yi.org/975
page generated in 0.00 seconds