Jump to content
warden

Единый Государсвенный Экзамен

Recommended Posts

А вы паритесь по поводу ЕГЭ))

 

Скрытый текст:
// iterator.cpp : Defines the entry point for the console application.

//

 

#include "stdafx.h"

#include <iostream>

#include <string.h>

 

using namespace std;

 

 

 

struct Pair

{

char &key;

int &val;

};

 

struct id

{

int val;

char *key;

id *left;

id *right;

id *parent;

};

 

struct Iterator

{

Iterator *it;

id *r;

Iterator incr();//++

Iterator decr();//--

Pair get();// key & val

bool equal(Iterator&);//==

int minus(Iterator&);//-How many nodes between

};

 

struct map

{

id *root;

Iterator *it;

map();

map(char*, int);

~map();

bool add(char*, int);

int & get (char*);

 

Iterator begin();

Iterator end();

Iterator find(char *key);

void remove (char *key);

void remove (Iterator &pos);

Iterator lover_bound(char *key);

};

 

map :: map()

{

// id *root1= new id;

//root=root1;

 

char kkey[2];

kkey[0]=128;

kkey[1]=0;

 

strcpy(root->key,kkey);

root->val=0;

root->left = NULL;

root->right = NULL;

root->parent = NULL;

 

//id *itr = new id;

//itr = root;

}

map :: map(char* key, int val)

{

id *root1= new id;

root=root1;

 

int dl = strlen(key)+1;

char *kkey= new char[dl];

strcpy(kkey, key);

 

root->key=kkey;

root->val=val;

root->left = NULL;

root->right = NULL;

root->parent = NULL;

 

//id *itr = new id;

//itr = root;

}

bool map :: add(char *key, int val)

{

int dl = strlen(key)+1;

char *kkey= new char[dl];

strcpy(kkey, key);

 

if (root == NULL)

{

id *newroot= new id;

 

newroot->key=kkey;

newroot->val=val;

newroot->left = NULL;

newroot->right = NULL;

newroot->parent = NULL;

 

root=newroot;

return 1;

}

 

id *rootfix = root;

 

bool vse = 0;

while(!vse)

{

if (strcmpi(rootfix->key, key) == 0)

return 0;

if (strcmpi(rootfix->key, key) == 1)

{

if (rootfix->left == 0)

{

vse = 1;

id *root1 = new id;

root1->val = val;

root1->key = kkey;

root1->parent = rootfix;

root1->left = 0;

root1->right = 0;

rootfix->left = root1;

}

else

rootfix=rootfix->left;

}

 

if (strcmpi(rootfix->key, key) == -1)

{

if (rootfix->right == 0)

{

vse = 1;

id *root1 = new id;

root1->val = val;

root1->key = kkey;

root1->parent = rootfix;

root1->left = 0;

root1->right = 0;

rootfix->right = root1;

}

else

rootfix=rootfix->right;

}

}

 

return 1;

}

 

 

void des(id *root)

{

id *rootleft=root->left;

id *rootright=root->right;

// delete root->key; //nado li?

delete root;

 

if (rootleft != NULL)

des(rootleft);

if (rootright != NULL)

des(rootright);

 

}

 

map :: ~map()

{

des(root);

}

 

int& map :: get(char *key)

{

id *rootfix=root;

int i=1;

while (i)

{

if (strcmpi(rootfix->key, key) == 0)

return rootfix->val;

 

if (strcmpi(rootfix->key, key) == 1)

rootfix=rootfix->left;

else

rootfix=rootfix->right;

i++;

}

}

void error(bool flag)

{

if (!flag)

cout<<"BLYYYAAAAAAAA"<<endl;

}

 

//////////////////////////////////

// Iterator

//////////////////////////////////

 

Iterator map :: begin()

{

it->r=root;

return *it;

 

}

 

Iterator map :: end()

{

while(it->r->right != NULL)

it->r=it->r->right;

return *it;

}

Iterator Iterator :: incr()

{

 

Iterator *itf=it;

 

if (itf->r->right != NULL)

itf->r=itf->r->right;

else

L:

if (itf->r->parent->left == itf->r)

itf->r=itf->r->parent;

else

{

itf->r=itf->r->parent;

goto L;

}

it=itf;

return *itf;

 

}

Iterator Iterator:: decr()

{

Iterator *itf=it;

 

if (itf->r->left != NULL)

itf->r=itf->r->left;

else

R:

if (itf->r->parent->right == itf->r)

itf->r=itf->r->parent;

else

{

itf->r=itf->r->parent;

goto R;

}

it=itf;

return *itf;

 

}

 

bool Iterator :: equal(Iterator & itf)

{

if (it->r == itf.r)

return 1;

else

return 0;

}

Pair Iterator :: get()

{

Pair *node;

node->key=it->r->key;

node->val=it->r->val;

return *node;

}

 

Iterator map :: find(char *key)

{

int dl = strlen(key)+1;

char *kkey= new char[dl];

strcpy(kkey, key);

 

Iterator *iter=it;

 

id *rootfix=root;

bool vse = NULL;

 

while(!vse)

{

if (strcmpi(rootfix->key, key) == 0)

{

vse = 1;

}

 

if (strcmpi(rootfix->key, key) == 1)

rootfix=rootfix->left;

else

rootfix=rootfix->right;

}

iter->r = rootfix;

return *iter;

 

}

 

 

 

void map :: remove(char *key)

{

 

Iterator i = find(key);

id *rootfix=i.r;

id *q;

//rootfix->val=i.r->val;

while(rootfix!=NULL)

{

if(rootfix->val > val)

{

q=rootfix;

rootfix=rootfix->left;

}

if(rootfix->val < val)

{

q=rootfix;

rootfix=rootfix->right;

}

if(rootfix==NULL)

{

cout<<"Tree node is empty."<<endl;

}

if(rootfix->val==val)

{

cout<<"Tree node was succesfully removed."<<endl;

// Случай, когда потомков нет:

if((rootfix->left==NULL) && (rootfix->right==NULL))

{

if(rootfix==root)

{

delete root;

cout<<"Root was removed."<<endl;

 

}

else

{

if(q->left==rootfix)

{

q->left=NULL;

delete rootfix;

 

}

if(q->right==rootfix)

{

q->right=NULL;

delete rootfix;

 

}

}

}

// Случай, когда один потомок (левый):

if ((rootfix->left!=NULL) && (rootfix->right==NULL))

{

if(rootfix==root)

{

root=root->left;

 

}

else

{

if(q->left==rootfix)

{

q->left=rootfix->left;

delete rootfix;

 

}

else

{

q->right=rootfix->left;

delete rootfix;

}

}

}

// Случай, когда один потомок (правый):

if ((rootfix->right!=NULL) && (rootfix->left==NULL))

{

if(rootfix==root)

{

root=root->right;

 

}

else

{

if(q->left==rootfix)

{

q->left=rootfix->right;

delete rootfix;

 

}

else

{

q->right=rootfix->right;

delete rootfix;

 

}

}

}

// Случай, когда два потомка:

if((rootfix->right!=NULL) && (rootfix->left!=NULL))

{

id *a=rootfix->left;

if(rootfix->val==root->val)

{

a=rootfix->left;

id *a_parent=a;

if(a->right==NULL)

{

rootfix->val=a->val;

rootfix->left=rootfix->left->left;

delete a;

 

}

else

{

while(a->right!=NULL)

{

a_parent=a,

a=a->right;

}

if(a->left==NULL)

{

rootfix->val=a->val;

a_parent->right=NULL;

delete a;

 

}

else

{

rootfix->val=a->val;

a_parent->right=a->left;

delete a;

 

}

}

}

else

{

if(a->right==NULL)

{

if(q->left==rootfix)

{

q->left=a;

a->right=rootfix->right;

delete rootfix;

 

}

if(q->right==rootfix)

{

q->right=a;

a->right=rootfix->right;

delete rootfix;

 

}

}

else

{

id *a_parent=a;

while(a->right!=NULL)

{

a_parent=a,

a=a->right;

}

if(a->left==NULL)

{

rootfix->val=a->val;

a_parent->right=NULL;

delete a;

 

}

else

{

rootfix->val=a->val;

a_parent->right=a->left;

delete a;

 

}

}

}

}

}

}

}

 

 

void map :: remove(Iterator &pos)

{

 

id *rootfix=pos.r;

id *q;

 

while(rootfix!=NULL)

{

if(rootfix->val>val)

{

q=rootfix;

rootfix=rootfix->left;

}

if(rootfix->val<val)

{

q=rootfix;

rootfix=rootfix->right;

}

if(rootfix==NULL)

{

cout<<"Tree node is empty."<<endl;

}

if(rootfix->val==val)

{

cout<<"Tree node was succesfully removed."<<endl;

// Случай, когда потомков нет:

if((rootfix->left==NULL) && (rootfix->right==NULL))

{

if(rootfix==root)

{

delete root;

cout<<"Root was removed."<<endl;

 

}

else

{

if(q->left==rootfix)

{

q->left=NULL;

delete rootfix;

 

}

if(q->right==rootfix)

{

q->right=NULL;

delete rootfix;

 

}

}

}

// Случай, когда один потомок (левый):

if ((rootfix->left!=NULL) && (rootfix->right==NULL))

{

if(rootfix==root)

{

root=root->left;

 

}

else

{

if(q->left==rootfix)

{

q->left=rootfix->left;

delete rootfix;

 

}

else

{

q->right=rootfix->left;

delete rootfix;

}

}

}

// Случай, когда один потомок (правый):

if ((rootfix->right!=NULL) && (rootfix->left==NULL))

{

if(rootfix==root)

{

root=root->right;

 

}

else

{

if(q->left==rootfix)

{

q->left=rootfix->right;

delete rootfix;

 

}

else

{

q->right=rootfix->right;

delete rootfix;

 

}

}

}

// Случай, когда два потомка:

if((rootfix->right!=NULL) && (rootfix->left!=NULL))

{

id *a=rootfix->left;

if(rootfix->val==root->val)

{

a=rootfix->left;

id *a_parent=a;

if(a->right==NULL)

{

rootfix->val=a->val;

rootfix->left=rootfix->left->left;

delete a;

 

}

else

{

while(a->right!=NULL)

{

a_parent=a,

a=a->right;

}

if(a->left==NULL)

{

rootfix->val=a->val;

a_parent->right=NULL;

delete a;

 

}

else

{

rootfix->val=a->val;

a_parent->right=a->left;

delete a;

 

}

}

}

else

{

if(a->right==NULL)

{

if(q->left==rootfix)

{

q->left=a;

a->right=rootfix->right;

delete rootfix;

 

}

if(q->right==rootfix)

{

q->right=a;

a->right=rootfix->right;

delete rootfix;

 

}

}

else

{

id *a_parent=a;

while(a->right!=NULL)

{

a_parent=a,

a=a->right;

}

if(a->left==NULL)

{

rootfix->val=a->val;

a_parent->right=NULL;

delete a;

 

}

else

{

rootfix->val=a->val;

a_parent->right=a->left;

delete a;

 

}

}

}

}

}

}

}

 

 

 

int _tmain(int argc, _TCHAR* argv[])

{

map m;

m.add("january",31);

m.add("february",28);

m.add("march",31);

m.add("april",30);

m.add("may",31);

 

for( Iterator p = m.begin(); !p.equal(m.end()); p.incr())

cout<<p.get().key<<" "<<p.get().val<<endl;

 

Iterator g = m.find("march");

Iterator next = g.incr();

Iterator prev = g.decr();

 

cout<<"prev "<<prev.get().key<<" "<<prev.get().val<<endl;

cout<<"next "<<next.get().key<<" "<<next.get().val<<endl;

 

m.add("june",30);

m.add("jule",31);

 

g=m.lover_bound("j");

cout<<g.get().key<<endl;

 

g=m.lover_bound("march");

cout<<g.get().key<<endl;

 

 

return 0;

}

 

Share this post


Link to post
Share on other sites

Што посоветуете моей дочке по ЕГЭ? (анекдот в тему: ЕГ памог мне паступить в пристижный масковский институт)

Share this post


Link to post
Share on other sites
Што посоветуете моей дочке по ЕГЭ? (анекдот в тему: ЕГ памог мне паступить в пристижный масковский институт)

Она в этом году сдает или на следующий? И куда собирается поступать?

Share this post


Link to post
Share on other sites

Посоветую успешно сдать английский, общество, русский и математику) Там по-моему на все факультеты 3 последних егэ нужны, точно не знаю.

В прошлом году на бюджет нужно было 240-260, около этого. На платное с 200 брали.

Share this post


Link to post
Share on other sites

Англ я её заставил записаться, но потом сама поленилась(хотя и репетитор советовала здавать). посмотрим как здаст всё остальное=) держу пальцы "крестиком"=)

Share this post


Link to post
Share on other sites

Foxman, как дочка сдала? напиши промежуточные результаты

Share this post


Link to post
Share on other sites

Как информатику с русским сдали? Может кто биологию сдавал.

Share this post


Link to post
Share on other sites

76 Русский.

 

Добавлено через 6 мин.:

Жду Математику=) цука, там С1-3 сложнее, чем ждали=)Хотя теорему косинусов должны знать все, даже бестолковые "бабы"=)))

Share this post


Link to post
Share on other sites
76 Русский.

 

Добавлено через 6 мин.:

Жду Математику=) цука, там С1-3 сложнее, чем ждали=)Хотя теорему косинусов должны знать все, даже бестолковые "бабы"=)))

Надо было с утра заходить на postupim.ru =) Там дальний восток кидал свои кимы.

 

Помогал решать егэ по математике, забыл как вся эта фигня решается, решил с1-с2 и с6 по-моему. Но в с6 ошибку допустил и понял это уже потом.

Share this post


Link to post
Share on other sites

Foxman мне уже друг свой результат сообщил по алгебре.

Куда собираетесь сплавлять? :)

Share this post


Link to post
Share on other sites

63 матем. для "бабы" пойдёт , с учётом изменения условий(А часть убрали, проходной в 20 превратили=))). общество пока не известно. КГФЭИ наверное. Кстати , как он щас называется, не ТьФУ случайно?=) А то вроде как объединяли какие-то там вузы с наименованием ПФУ (почти ТФУ=)

 

Добавлено через 10 мин.:

Кстати, интересно про рейтинг. Поясните .

Share this post


Link to post
Share on other sites

В КГФЭИ сложно будет на бюджет, правда. В прошлом году, из параллели девушку с 240 баллами кое-как взяли (возможно, из-за специальности).

Пробуйте Экономфак в КГУ. Правда сейчас объединили КГУ + КГФЭИ + ТГГПУ в КФУ и возможно объединят похожие специальности.

Хотя чем чёрт не шутит :nyam:

Share this post


Link to post
Share on other sites

Уверен изменят минимум (с учётом см. выше=)А так...всё равно поступит...головная боль предстоит через 5 лет=)))

Share this post


Link to post
Share on other sites

Жильё решён. Не ответили на вопрос про рейтинг-что это , и как его "едят"=)

Share this post


Link to post
Share on other sites

Ильхам, объясняю) Баллы- ничто, рейтинг- всё. Не важно как написал ты, важно как написал ты на фоне других. Получила дочка 63 по математике- молодец. Важно как написали ту же самую математику другие. Рейтинг в % показывает сколько человек написали хуже тебя. То есть если рейтинг 99%, то конкурировать ты будешь только с 1%. Написал я информатику на 90 баллов- рейтинг 99,7% чтоли. Написал математику на 77, да маловато для меня, но рейтинг 99,3%. То есть по информатике для меня конкуренцию составляют только 0,3%, по математике 0,7%.

Так что ориентироваться нужно на него.

Share this post


Link to post
Share on other sites

Ну сейчас же ограничение на вузы, так что наверное только "свои" будут подавать заявления, а не как в прошлом году, что чуть ли не во все вузы ребята подавали.

Суммируете рейтинг по трем предметам, делите на три, смотрите какой процент остался, переводите в человекоместа, ну и расчитывайте попадаете в число бюджетных мест или нет, но это очень субъективно, т.к. у кого побольше баллов в ГУ-ВШЭ всякие поступают, да и из других регионов могут приехать.

При поступлении рейтинг не учитывается :nyam:

Share this post


Link to post
Share on other sites

Где его узнавать, этот рейтинг?

Share this post


Link to post
Share on other sites

Обычно вместе с баллами присылают в школу.

Share this post


Link to post
Share on other sites

184.. остаются шансы на бюджет? хотел на админку..

Share this post


Link to post
Share on other sites
184.. остаются шансы на бюджет? хотел на админку..

Куда? Ты не сравнивай с прошлогодними, жди, пока универы свои проходные вывесят.

Share this post


Link to post
Share on other sites

В этом году наверное снизят=) прошла торж. часть выпускного. балбесы=) чуть до медали, директриса грит не дотянула. ну-ну, нехрен было по физре 4 ставить=)))

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×