Rezultati

Up. imeNalogaJezikRezultatČas oddaje
DROPTABLE-2017 Jungle Speed C++ 0/100Napačen odgovor (WA) 11. maj '17 @ 19:41

Test Točke Porabljen spomin Porabljen čas Status
#1 9/9 3,070 MiB 0,004 s OK
#2 9/9 3,066 MiB 0,004 s OK
#3 9/9 3,070 MiB 0,004 s OK
#4 9/9 3,211 MiB 0,004 s OK
#5 0/9 3,215 MiB 0,004 s Napačen odgovor
Tvoj izhod:
​4
<<<EOF>>>
Pravilen izhod:
​6
<<<EOF>>>
#6 0/9 3,070 MiB 0,004 s Napačen odgovor
Tvoj izhod:
​3
<<<EOF>>>
Pravilen izhod:
​1
<<<EOF>>>
#7 0/9 3,211 MiB 0,004 s Napačen odgovor
Tvoj izhod:
​4
<<<EOF>>>
Pravilen izhod:
​8
<<<EOF>>>
#8 0/9 3,219 MiB 0,004 s Napačen odgovor
Tvoj izhod:
​3
<<<EOF>>>
Pravilen izhod:
​4
<<<EOF>>>
#9 0/9 3,063 MiB 0,004 s Napačen odgovor
Tvoj izhod:
​1
<<<EOF>>>
Pravilen izhod:
​5
<<<EOF>>>
#10 0/9 3,156 MiB 0,004 s Napačen odgovor
Tvoj izhod:
​4
<<<EOF>>>
Pravilen izhod:
​3
<<<EOF>>>
#11 10/10 3,219 MiB 0,004 s OK

Ocenjevani program (upm_jungle_speed.cpp):
// My awesome console application!
//
#include <iostream>
#include <queue>
#include <algorithm>

using namespace std;

struct Noob {
	int id;
	vector<int> roka, kup;

};

int main()
{
	int M;
	int N;
	queue<int> krompir;
	//*/
	cin >> N;

	int m;

	while (cin >> m) {
		krompir.push(m);
	}
	//*/


	/*/
	N = 4;
	krompir.push(2);
	krompir.push(3);
	krompir.push(4);
	krompir.push(1);
	krompir.push(4);
	krompir.push(4);
	krompir.push(4);
	krompir.push(2);
	krompir.push(1);
	krompir.push(3);
	krompir.push(1);
	krompir.push(2);
	krompir.push(2);
	krompir.push(3);
	krompir.push(3);
	krompir.push(1);

	M = krompir.size();
	//*/

	/*/
	N = 4;
	krompir.push(3);
	krompir.push(2);
	krompir.push(2);
	krompir.push(2);
	krompir.push(1);
	krompir.push(1);
	krompir.push(3);
	krompir.push(4);
	krompir.push(3);
	krompir.push(4);
	krompir.push(2);
	krompir.push(4);
	krompir.push(1);
	krompir.push(3);
	krompir.push(4);
	krompir.push(1);

	M = krompir.size();
	//*/

	vector<Noob*> noobi;
	for (int i = 0; i < N; i++) {
		Noob* noob = new Noob;
		noob->id = i;
		noobi.push_back(noob);
	}

	int keri = 0;
	while (krompir.size() > 0) {
		noobi[keri]->roka.push_back(krompir.front());
		krompir.pop();
		keri = (keri + 1) % N;
	}

	keri = 0;

	while (true) {
		Noob* jaz_noob = noobi[keri];

		if (jaz_noob->roka.size() == 0) {
			if (jaz_noob->kup.size() == 0) {
				//#REKT
				cout << keri + 1 << endl;
				break;
			}

			//Vzami v roko
			reverse(jaz_noob->kup.begin(), jaz_noob->kup.end());
			jaz_noob->roka.insert(jaz_noob->roka.begin(), jaz_noob->kup.begin(), jaz_noob->kup.end());
			jaz_noob->kup.clear();
		}

		//Daj:
		jaz_noob->kup.push_back(*(jaz_noob->roka.end()-1));
		jaz_noob->roka.pop_back();

		bool preskok = false;

		//Primerjaj:
		for (int i = 0; i < noobi.size(); i++) {
			if (i != keri) {
				if (noobi[i]->kup.size() > 0) {
					if (*(noobi[i]->kup.end() - 1) == *(jaz_noob->kup.end() - 1)) {

						int kje = jaz_noob->kup.size();

						reverse(noobi[i]->kup.begin(), noobi[i]->kup.end());
						jaz_noob->roka.insert(jaz_noob->roka.begin(), noobi[i]->kup.begin(), noobi[i]->kup.end());
						noobi[i]->kup.clear();

						reverse(jaz_noob->kup.begin(), jaz_noob->kup.end());
						jaz_noob->roka.insert(jaz_noob->roka.begin(), jaz_noob->kup.begin(), jaz_noob->kup.end());
						jaz_noob->kup.clear();

						preskok = true;
						break;
					}
				}
			}
		}
		if (!preskok) {
			keri = (keri + 1) % 4;
		}
	}

    return 0;
}