#include #include #include using namespace std; #define FNAME "triangle.txt" #define cin fin ifstream fin(FNAME); class Piece { public: int next, prev, outside; void rotate() { const int tmp = next; next = outside; outside = prev; prev = tmp; } bool unicolor() { return (prev == outside && outside == next); } }; Piece T[6], H[6]; bool used[6]; int maxSum; void recursive( int nth, int sum ) { for ( int t = 1; t < 6; t++ ) { if ( used[t] ) continue; H[nth] = T[t]; used[t] = true; for ( int i = 0; i < 3; i++ ) { H[nth].rotate(); if ( H[nth-1].next != H[nth].prev ) continue; if ( nth < 5 ) recursive(nth+1, sum+H[nth].outside); else if ( H[0].prev == H[nth].next ) maxSum = max(maxSum, sum+H[nth].outside); if ( H[nth].unicolor() ) break; } used[t] = false; } } int main() { while ( true ) { for ( int i = 0; i < 6; i++ ) cin >> T[i].next >> T[i].prev >> T[i].outside; H[0] = T[0]; for ( int i = 0; i < 6; i++ ) used[i] = false; maxSum = 0; for ( int i = 0; i < 3; i++ ) { H[0].rotate(); recursive(1, H[0].outside); if ( H[0].unicolor() ) break; } if ( maxSum == 0 ) cout << "none" << endl; else cout << maxSum << endl; char ch; cin >> ch; if ( ch == '$' ) break; } return 0; }