Advertisement
Guest User

Untitled

a guest
Jan 8th, 2014
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.95 KB | None | 0 0
  1. #pragma comment(linker, "/STACK:256000000")
  2. #include <iostream>
  3. #include <vector>
  4. #include <ctime>
  5. using namespace std;
  6.  
  7. const int MAXN = 10000000;
  8.  
  9. int n, m;
  10. vector<int> t[MAXN];
  11.  
  12. int dfs(int v) {
  13.     if (v == n - 1) {
  14.         return v;
  15.     } else {
  16.         for (int i = 0; i < (int)t[v].size(); i++) {
  17.             int val = dfs(t[v][i]);
  18.             if (val != -1) {
  19.                 return val;
  20.             }
  21.         }
  22.         return -1;
  23.     }
  24. }
  25.  
  26. void dfs2(int v) {
  27.     if (v == n - 1) {
  28.         throw v;
  29.     } else {
  30.         for (int i = 0; i < (int)t[v].size(); i++) {
  31.             dfs2(t[v][i]);
  32.         }
  33.     }
  34. }
  35.  
  36. int main() {
  37.     cin >> n >> m;
  38.     for (int i = 0; i < n - 1; i++) {
  39.         t[i].push_back(i + 1);
  40.     }
  41.  
  42.     clock_t start = clock();
  43.     int dummy = 0;
  44.     for (int i = 0; i < m; i++) {
  45.         dummy += dfs(0);
  46.     }
  47.     cout << clock() - start << endl;
  48.  
  49.     start = clock();
  50.     for (int i = 0; i < m; i++) {
  51.         try {
  52.             dfs2(0);
  53.         } catch (int val) {
  54.             dummy += val;
  55.         }
  56.     }
  57.     cout << clock() - start << endl;
  58.  
  59.     cout << dummy << endl;
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement