This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
rosedu:cdl:marius-dragus [2010/03/27 10:07] mdragus |
rosedu:cdl:marius-dragus [2020/07/20 09:16] (current) |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | = Marius Dragus | + | = Shidfar Hodizoda |
| - | *Nume complet: | + | * Nume complet: |
| - | *Alias-uri: | + | * Alias-uri: |
| - | *Data/locul nașterii: 14 octombrie 1990, | + | * Data/locul nașterii: 14 octombrie 1990, |
| - | == Educatie == | + | |
| + | ===== Educatie | ||
| | | ||
| | | ||
| - | == Competente == | + | ===== Competente |
| - | *sunt smecher ce sa mai.... | + | * sunt smecher ce sa mai.... |
| - | == Link-uri spre alti oameni smecheri == | + | ===== Link-uri spre alti oameni smecheri |
| [[rosedu: | [[rosedu: | ||
| [[rosedu: | [[rosedu: | ||
| - | |||
| ==Acum niste cod baby== | ==Acum niste cod baby== | ||
| < | < | ||
| - | #include< | + | - include< |
| - | #include< | + | |
| - | #include< | + | |
| - | #define pb push_back | + | |
| - | #define mkp make_pair | + | |
| using namespace std; | using namespace std; | ||
| Line 47: | Line 47: | ||
| } | } | ||
| - | bool ver(vector<pair< | + | </code> |
| - | { | + | |
| - | sort(v1.begin(), | + | |
| - | MOVE = 0; | + | |
| - | for(int i = v1.size() - 1; | + | |
| - | { | + | |
| - | if (timp < 0) return false; | + | |
| - | if (timp < D[v1[i].first][v1[i].second]) return false; | + | |
| - | if (timp > D[v1[i].first][v1[i].second]) | + | |
| - | { | + | |
| - | if (!MOVE) MOVE = v1[i].first; | + | |
| - | v1.pop_back(); | + | |
| - | timp--; | + | |
| - | continue; | + | |
| - | } | + | |
| - | if (timp == D[v1[i].first][v1[i].second]) | + | |
| - | { | + | |
| - | if(!MOVE) MOVE = M[v1[i].first][v1[i].second]; | + | |
| - | v1[i].second++; | + | |
| - | timp--; | + | |
| - | while(i != 0 && cmpf(v1[i], | + | |
| - | // | + | |
| - | continue; | + | |
| - | } | + | |
| - | } | + | |
| - | if (timp < 0) return false; | + | |
| - | return true; | + | |
| - | } | + | |
| - | void solve(vector< | + | ==Si un tabel cu giberis== |
| - | { | + | |
| - | if (v.size() | + | |
| - | short x = 0,p; | + | |
| - | for(p = 1;p < N; p <<= 1); | + | |
| - | for(;p;p >>= 1) | + | |
| - | if (!ver(v,x + p)) | + | |
| - | { | + | |
| - | x += p; | + | |
| - | } | + | |
| - | x++; | + | |
| - | ver(v, | + | |
| - | COST = x; | + | |
| - | } | + | |
| - | void dfs(int nod) | + | ^Ceva ^Blablabla ^altceva ^ |
| - | { | + | |caca |maca|nata| |
| - | if (VER[nod]) return ; | + | |gata|cu|rimele| |
| - | VER[nod] = 1; | + | |
| - | for(int i = 0;i < (int)VECT[nod].size(); | + | |
| - | { | + | |
| - | if (!VER[VECT[nod][i]]) TATA[VECT[nod][i]] = nod; | + | |
| - | dfs(VECT[nod][i]); | + | |
| - | } | + | |
| - | VEC.clear(); | + | |
| - | for(int i = 0;i < (int)VECT[nod].size(); | + | |
| - | { | + | |
| - | if (VER[VECT[nod][i]] == 2)VEC.pb(mkp(VECT[nod][i], | + | |
| - | } | + | |
| - | for(int i = 0;i < N && VEC.size() > 0;++i) | + | |
| - | { | + | |
| - | solve(VEC); | + | |
| - | D[nod][i] = COST; | + | |
| - | M[nod][i] = MOVE; | + | |
| - | for(int i = 0;i < (int)VEC.size(); | + | |
| - | { | + | |
| - | if (VEC[i].first == MOVE) | + | |
| - | { | + | |
| - | VEC[i] = VEC[VEC.size() - 1]; | + | |
| - | VEC.pop_back(); | + | |
| - | } | + | |
| - | if (M[VEC[i].first][VEC[i].second] == MOVE) VEC[i].second += 1; | + | |
| - | } | + | |
| - | } | + | |
| - | VER[nod] = 2; | + | |
| - | } | + | |
| - | + | ||
| - | int main() | + | |
| - | { | + | |
| - | freopen(" | + | |
| - | freopen(" | + | |
| - | scanf(" | + | |
| - | for(int i = 1;i < N; ++i) | + | |
| - | { | + | |
| - | short x,y; | + | |
| - | scanf(" | + | |
| - | assert(x != 0 && y != 0); | + | |
| - | VECT[x].pb(y); | + | |
| - | VECT[y].pb(x); | + | |
| - | } | + | |
| - | dfs(1); | + | |
| - | + | ||
| - | memset(VER, | + | |
| - | printf(" | + | |
| - | ANS.pb(mkp(1, | + | |
| - | VER[1] = 1; | + | |
| - | for(int i = 1;i <= D[1][0]; ++i) | + | |
| - | { | + | |
| - | + | ||
| - | AUX.clear(); | + | |
| - | for(int j = 0;j < ANS.size(); ++j) | + | |
| - | { | + | |
| - | if (VER[M[ANS[j].first][ANS[j].second]] == 0 && M[ANS[j].first][ANS[j].second]) | + | |
| - | { | + | |
| - | AUX.pb(mkp(ANS[j].first, | + | |
| - | VER[M[ANS[j].first][ANS[j].second]] = 1; | + | |
| - | ANS[j].second++; | + | |
| - | } | + | |
| - | } | + | |
| - | printf(" | + | |
| - | for(int j = 0;j < AUX.size(); ++j) | + | |
| - | { | + | |
| - | printf(" | + | |
| - | NRT = 0; | + | |
| - | int nod = AUX[j].second; | + | |
| - | for(NRT; | + | |
| - | ANS.pb(mkp(AUX[j].second, | + | |
| - | } | + | |
| - | } | + | |
| - | + | ||
| - | return 0; | + | |
| - | } | + | |
| - | + | ||
| - | </ | + | |