[ create a new paste ] login | about

Link: http://codepad.org/OeyZc2cC    [ raw code | output | fork ]

C++, pasted on Jul 20:
#include <iostream>
using namespace std;

int seat[6][4] = {
  {1,1,1,1},
  {1,1,1,1},
  {1,1,1,1},
  {1,1,1,1},
  {1,1,1,1},
  {1,1,0,1}};

void message(int i, char c, int smoke, int msg)
{
  if(msg) {
    cout << "窓側(あるいは通路側)はすでに満席のため通路側(窓側)で予約します" << endl;
  }
  cout << "--------" << endl;
  cout << i+1 << c << " " << (smoke==1?"喫煙":"禁煙") << endl;
  cout << "--------" << endl;
}

int search(int smoke, int place, int msg)
{
  int i,j;

  if(smoke==1) {
    i=0; j=1;
  } else {
    i=2; j=5;
  }

  if(place==1) {
    for(;i<=j;i++) {
      if (seat[i][0] == 0) {
	message(i, 'A', smoke, msg);
	return 0;
      } else if (seat[i][3] == 0) {
	message(i, 'D', smoke, msg);
	return 0;
      }
    }
  } else {
    for(;i<=j;i++) {
      if(seat[i][1] == 0) {
	message(i, 'B', smoke, msg);
	return 0;
      } else if (seat[i][2] == 0) {
	message(i, 'C', smoke, msg);
	return 0;
      }
    }
  }
  
  return 1;
}

int main(void)
{
  int smoke, place;
  char c;

  cout << "喫煙席を希望する方は 1 をタイプしてください。" << endl;
  cout << "禁煙席を希望する方は 2 をタイプしてください。" << endl;
  cin >> smoke;

  cout << "窓側を希望する方は 1 をタイプしてください。" << endl;
  cout << "通路側を希望する方は 2 をタイプしてください。" << endl;
  cin >> place;

  if(search(smoke, place, 0)) {
    if(search(smoke, place==1?2:1, 1)) {
      cout << (smoke==1?"禁":"喫") << "煙席でもよろしいですか?(y/n)" << endl;
      cin >> c;
      if(c=='y') {
	if(search(smoke==1?2:1, place, 0)) {
	  if(search(smoke==1?2:1, place==1?2:1, 1)) {
	    cout << "満席です。" << endl;
	    cout << "3時間後に次のフライトがあります。" << endl;
	  }
	}
      } else {
	cout << "3時間後に次のフライトがあります。" << endl;
      }
    }
  }
  
  return 0;
}


Output:
1
2
3
4
5
6
7
喫煙席を希望する方は 1 をタイプしてください。
禁煙席を希望する方は 2 をタイプしてください。
窓側を希望する方は 1 をタイプしてください。
通路側を希望する方は 2 をタイプしてください。
--------
6C 禁煙
--------


Create a new paste based on this one


Comments: