Pagini recente » Cod sursa (job #2329722) | Cod sursa (job #2353680) | Cod sursa (job #2932173) | Cod sursa (job #3002859) | Cod sursa (job #533012)
Cod sursa(job #533012)
// http://infoarena.ro/problema/hotel
#include <fstream>
#include <vector>
using namespace std;
#define maxSize 262144
#define leftSon 2*node
#define rightSon 2*node+1
#define begin first
#define end second
ifstream in("hotel.in");
ofstream out("hotel.out");
pair<int,int> interval;
vector<int> tree(maxSize,1);
void initializeTree(int node,int left,int right);
int main() {
int rooms,instructions,type;
in >> rooms >> instructions;
interval = make_pair(1,rooms);
initializeTree(1,1,rooms);
return (0);
}
void initializeTree(int node,int left,int right) {
if(left != right) {
int middle = (left + right) / 2;
if(interval.begin <= middle)
initializeTree(leftSon,left,middle);
if(interval.end > middle)
initializeTree(rightSon,middle+1,right);
tree[node] = tree[leftSon] + tree[rightSon];
}
}