#pragma once
template<classT>structSimpleQueue{private:vector<T>a;intp;public:SimpleQueue(){}SimpleQueue(intn){a.reserve(n);}voidreserve(intn){a.reserve(n);}intsize(){returna.size()-p;}boolempty(){returna.size()==p;}voidpush(constT&v){a.push_back(v);}T&front(){returna[p];}voidpop(){p++;}voidclear(){a.clear();p=0;}};