1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <vector>
#include <set>
#include <random>
#include <map>
#include <deque>

using namespace std;

class Node {
public:
  long n;
  long d;
  vector<long> nexts;
  vector<long> dists;
  Node(long n):n(n) {
    d = 0;
  };
};


int main() { 
  long NoQ = 200;
  long NoN = 5000;
  long NoS = 1000000;
  long res = 0;

 //  vector<long> vqf;
 //  vector<long> vqt;
 
 //  vector<Node> nodes;
 //  deque<pair<long, long> > q;

 //  map<long, long> vends_rev;
 //  for (long i=0;i<NoS+1;i++) {
 //    vends_rev[i] = i;
 //    nodes.push_back(Node(i));
 //  }

 //  for(int i=0; i<NoN; i++) {
 //      long nf = rand() % NoS +1;
 //      long n1 = rand() % NoS +1;
 //      long d1 = 100;
 //      long n2 = rand() % NoS +1;
 //      long d2 = 100;

 //      vqf.push_back(n1);
 //      vqt.push_back(n2);
          
 //      if (n1 > 0) {
 //        long v1 = vends_rev[nf];
 //        long v2 = vends_rev[n1];

 //        nodes[v1].nexts.push_back(v2);
 //        nodes[v1].dists.push_back(d1);
 //        nodes[v2].nexts.push_back(v1);
 //        nodes[v2].dists.push_back(d1);
 //      }
 //      if (n2 > 0) {
 //        long v1 = vends_rev[nf];
 //        long v2 = vends_rev[n2];

 //        nodes[v1].nexts.push_back(v2);
 //        nodes[v1].dists.push_back(d2);
 //        nodes[v2].nexts.push_back(v1);
 //        nodes[v2].dists.push_back(d1);
 //      }

 //  }

 // // printf("%ld %ld\n", vqf.size(), vqt.size());

 //  for (int i=0;i<NoQ; i++) {
 //    long qf = vqf[NoQ-i];
 //    long qt = vqt[i];
    
 //    if (qf == qt) {
 //      printf("0\n");
 //    } else {
 //      long vs = vends_rev[qf];
 //      long vt = vends_rev[qt];

 //     // printf("%ld %ld %ld %ld\n", qf, qt, vs, vt);

 //      nodes[vs].d = 0;

 //      q.push_back(make_pair(vs, vs));
 //      while(!q.empty()) {
 //        pair<long, long> p = q.front();
 //        long vf = p.first;
 //        long vc = p.second;
        
 //        q.pop_front();

 //        Node& curr = nodes[vc];

 //        for(int j=0;j<curr.nexts.size(); j++) {
 //          if (curr.nexts[j] != vf) {
 //            Node& nj = nodes[curr.nexts[j]];
 //            nj.d = curr.d + curr.dists[j];
 //            if (nj.n == vt)
 //              break;
 //            q.push_back(make_pair(vc, nj.n));
 //          }
 //        }
 //      }

 //      q.clear();

 //      res += nodes[vt].d;
 //    }
 //  }

long r=0;
  printf("%ld\n", res);
  for(int i=0; i<20000000; i++) {
    r += rand()%NoN;
  }

  printf("%ld", r);
  return 0;
}