Language: C++

#include <iostream>
#include <string>
#define rep(i,n) for (int i = 0; i < n; i++)
using namespace std;

void north();
void south();
void west();
void east();
void right();
void left();

int top, bot, n, s, w, e, time, total, stock;
string inst;

int main() {
	while (cin >> time, time) {
		top = 1;
		bot = 6;
		n = 5;
		s = 2;
		w = 4;
		e = 3;
		total = 1; //initialize

		rep(i, time) {
			cin >> inst;
			if (inst == "North") north();
			if (inst == "South") south();
			if (inst == "West") west();
			if (inst == "East") east();
			if (inst == "Right") right();
			if (inst == "Left") left();
			total += top;
		}

		cout << total << endl;
	}

	return 0;
}

void north() {
	stock = top;
	top = s;
	s = bot;
	bot = n;
	n = stock;
	return;
}

void south() {
	stock = top;
	top = n;
	n = bot;
	bot = s;
	s = stock;
	return;
}

void west() {
	stock = top;
	top = e;
	e = bot;
	bot = w;
	w = stock;
	return;
}

void east() {
	stock = top;
	top = w;
	w = bot;
	bot = e;
	e = stock;
	return;
}

void right() {
	stock = n;
	n = w;
	w = s;
	s = e;
	e = stock;
	return;
}

void left() {
	stock = n;
	n = e;
	e = s;
	s = w;
	w = stock;
	return;
}

Compiler output:
a.cc:13:27: error: 'int time' redeclared as different kind of entity
   13 | int top, bot, n, s, w, e, time, total, stock;
      |                           ^~~~
In file included from /usr/include/pthread.h:23,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/gthr-default.h:35,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/gthr.h:157,
                 from /usr/include/c++/14/ext/atomicity.h:35,
                 from /usr/include/c++/14/bits/ios_base.h:39,
                 from /usr/include/c++/14/ios:44,
                 from /usr/include/c++/14/ostream:40,
                 from /usr/include/c++/14/iostream:41,
                 from a.cc:1:
/usr/include/time.h:76:15: note: previous declaration 'time_t time(time_t*)'
   76 | extern time_t time (time_t *__timer) __THROW;
      |               ^~~~
a.cc: In function 'int main()':
a.cc:17:20: error: no match for 'operator>>' (operand types are 'std::istream' {aka 'std::basic_istream<char>'} and 'time_t(time_t*) noexcept' {aka 'long int(long int*) noexcept'})
   17 |         while (cin >> time, time) {
      |                ~~~ ^~ ~~~~
      |                |      |
      |                |      time_t(time_t*) noexcept {aka long int(long int*) noexcept}
      |                std::istream {aka std::basic_istream<char>}
In file included from /usr/include/c++/14/iostream:42:
/usr/include/c++/14/istream:170:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(bool&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  170 |       operator>>(bool& __n)
      |       ^~~~~~~~
/usr/include/c++/14/istream:170:7: note:   conversion of argument 1 would be ill-formed:
a.cc:17:23: error: cannot bind non-const lvalue reference of type 'bool&' to a value of type 'time_t (*)(time_t*) noexcept' {aka 'long int (*)(long int*) noexcept'}
   17 |         while (cin >> time, time) {
      |                       ^~~~
/usr/include/c++/14/istream:174:7: note: candidate: 'std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(short int&) [with _CharT = char; _Traits = std::char_traits<char>]' (near match)
  174 |       operator>>(short& __n);
      |       ^~~~~~~~
/usr/include/c++/14/istream:174:7: note:   conversion of argument 1 would be ill-formed:
a.cc:17:23: error: invalid conversion from 'time_t (*)(time_t*) noexcept' {aka 'long int (*)(long int*) noexcept'} to 'short int' [-fpermissive]
   17 |         while (cin >> time, time) {
      |                       ^~~~
      |                       |
      |                       time_t (*)(time_t*) noexcept {aka long int (*)(long int*) noexcept}
a.cc:17:23: error: cannot bind rvalue '(short int)time' to 'short int&'
/usr/include/c++/14/istream:177:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(short unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  177 |       operator>>(unsigned short& __n)
      |       ^~~~~~~~
/usr/include/c++/14/istream:177:7: note:   conversion of argument 1 would be ill-formed:
a.cc:17:23: error: invalid conversion from 'time_t (*)(time_t*) noexcept' {aka 'long int (*)(long int*) noexcept'} to 'short unsigned int' [-fpermissive]
   17 |         while (cin >> time, time) {
      |                       ^~~~
      |                       |
      |                       time_t (*)(time_t*) noexcept {aka long int (*)(long int*) noexcept}
a.cc:17:23: error: cannot bind rvalue '(short unsigned int)time' to 'short unsigned int&'
/usr/include/c++/14/istream:181:7: note: candidate: 'std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(int&) [with _CharT = char; _Traits = std::char_traits<char>]' (near match)
  181 |       operator>>(int& __n);
      |       ^~~~~~~~
/usr/include/c++/14/istream:181:7: note:   conversion of argument 1 would be ill-formed:
a.cc:17:23: error: invalid conversion from 'time_t (*)(time_t*) noexcept' {aka 'long int (*)(long int*) noexcept'} to 'int' [-fpermissive]
   17 |         while (cin >> time, time) {
      |                       ^~~~
      |                       |
      |                       time_t (*)(time_t*) noexcept {aka long int (*)(long int*) noexcept}
a.cc:17:23: error: cannot bind rvalue '(int)time' to 'int&'
/usr/include/c++/14/istream:184:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  184 |       operator>>(unsigned int& __n)
      |       ^~~~~~~~
/usr/include/c++/14/istream:184:7: note:   conversion of argument 1 would be ill-formed:
a.cc:17:23: error: invalid conversion from 'time_t (*)(time_t*) noexcept' {aka 'long int (*)(long int*) noexcept'} to 'unsigned int' [-fpermissive]
   17 |         while (cin >> time, time) {
      |                       ^~~~
      |                       |
      |                       time_t (*)(time_t*) noexcept {aka long int (*)(long int*) noexcept}
a.cc:17:23: error: cannot bind rvalue '(unsigned int)time' to 'unsigned int&'
/usr/include/c++/14/istream:188:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  188 |       operator>>(long& __n)
      |       ^~~~~~~~
/usr/include/c++/14/istream:188:7: note:   conversion of argument 1 would be ill-formed:
a.cc:17:23: error: invalid conversion from 'time_t (*)(time_t*) noexcept' {aka 'long int (*)(long int*) noexcept'} to 'long int' [-fpermissive]
   17 |         while (cin >> time, time) {
      |                       ^~~~
      |                       |
      |                       time_t (*)(time_t*) noexcept {aka long int (*)(long int*) noexcept}
a.cc:17:23: error: cannot bind rvalue '(long int)time' to 'long int&'
/usr/include/c++/14/istream:192:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  192 |       operator>>(unsigned long& __n)
      |       ^~~~~~~~
/usr/include/c++/14/istream:192:7: note:   conversion of argument 1 would be ill-formed:
a.cc:17:23: error: invalid conversion from 'time_t (*)(time_t*) noexcept' {aka 'long int (*)(long int*) noexcept'} to 'long unsigned int' [-fpermissive]
   17 |         while (cin >> time, time) {
      |                       ^~~~
      |                       |
      |                       time_t (*)(time_t*) noexcept {aka long int (*)(long int*) noexcept}
a.cc:17:23: error: cannot bind rvalue '(long unsigned int)time' to 'long unsigned int&'
/usr/include/c++/14/istream:199:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long long int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  199 |       operator>>(long long& __n)
      |       ^~~~~~~~
/usr/include/c++/14/istream:199:7: note:   conversion of argument 1 would be ill-formed:
a.cc:17:23: error: invalid conversion from 'time_t (*)(time_t*) noexcept' {aka 'long int (*)(long int*) noexcept'} to 'long long int' [-fpermissive]
   17 |         while (cin >> time, time) {
      |                       ^~~~
      |                       |
      |                       time_t (*)(time_t*) noexcept {aka long int (*)(long int*) noexcept}
a.cc:17:23: error: cannot bind rvalue '(long long int)time' to 'long long int&'
/usr/include/c++/14/istream:203:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long long unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  203 |       operator>>(unsigned long long& __n)
      |       ^~~~~~~~
/usr/include/c++/14/istream:203:7: note:   conversion of argument 1 would be ill-formed:
a.cc:17:23: error: invalid conversion from 'time_t (*)(time_t*) noexcept' {aka 'long int (*)(long int*) noexcept'} to 'long long unsigned int' [-fpermissive]
   17 |         while (cin >> time, time) {
      |                       ^~~~
      |                       |
      |                       time_t (*)(time_t*) noexcept {aka long int (*)(long int*) noexcept}
a.cc:17:23: error: cannot bind rvalue '(long long unsigned int)time' to 'long long unsigned int&'
/usr/include/c++/14/istream:328:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(void*&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  328 |       operator>>(void*& __p)
      |       ^~~~~~~~
/usr/include/c++/14/istream:328:7: note:   conversion of argument 1 would be ill-formed:
a.cc:17:23: error: invalid conversion from 'time_t (*)(time_t*) noexcept' {aka 'long int (*)(long int*) noexcept'} to 'void*' [-fpermissive]
   17 |         while (cin >> time, time) {
      |                       ^~~~
      |                       |
      |                       time_t (*)(time_t*) noexcept {aka long int (*)(long int*) noexcept}
a.cc:17:23: error: cannot bind rvalue '(void*)time' to 'void*&'
/usr/include/c++/14/istream:122:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(__istream_type& (*)(__istream_type&)) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  122 |       operator>>(__istream_type& (*__pf)(__istream_type&))
      |       ^~~~~~~~
/usr/include/c++/14/istream:122:7: note:   conversion of argument 1 would be ill-formed:
a.cc:17:23: e