AOJ 0082 - Flying Jenny

はじめて8進数使った.bit処理っぽいことした.
"1 2 3"みたいに出力するのが未だにきれいに書けない.

#include<iostream>

int main(){
  int p[8], c[8] = {012121414, 014121214,
                    012141412, 014141212,
                    021214141, 041212141,
                    021414121, 041412121};
	while(std::cin >> p[0], !std::cin.eof()){
		for(int i=1;i<8;i++){
			std::cin >> p[i];
		}

		int pos = 0, max_n = 0;
		for(int i=0;i<8;i++){
			int _n = 0;
			for(int j=0;j<8;j++){
				_n += (p[j]>(c[i]>>3*j&07))?(c[i]>>3*j&07):p[j];
			}
			if(_n >= max_n){
				pos = i;
				max_n = _n;
			}
		}

		for(int i=0;i<8;i++){
			std::cout << (c[pos]>>3*i&07);
			if(i < 7)std::cout << " ";
		}
		std::cout << "\n";
	}
}