Guest User

Untitled

a guest
Apr 19th, 2011
370
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.93 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #pragma comment (linker, "/STACK:16777216")
  3. #include <iostream>
  4. #include <algorithm>
  5. #include <numeric>
  6. #include <vector>
  7. #include <queue>
  8. #include <list>
  9. #include <stack>
  10. #include <string>
  11. #include <fstream>
  12. #include <math.h>
  13. #include <limits>
  14. #include <set>
  15. #include <map>
  16. #include <sstream>
  17. #include <stdio.h>
  18. #include <time.h>
  19. #include <memory.h>
  20. #include <cassert>
  21. #include <complex>
  22. #ifdef MY_JUDGE
  23. #include <windows.h>
  24. #endif
  25. using namespace std;
  26.  
  27. ///////////////// macros and typedefs ///////////////////
  28. #define rep(i, n) for (int i = 0, _n = (n); i < _n; ++i)
  29. #define repd(i, n) for (int i = (n)-1; i >= 0; --i)
  30. #define _fill(a, x) memset((a), (x), sizeof((a)))
  31. #define DEB(k) cerr<<"debug: "#k<<"="<<k<<endl;
  32. #define all(c) (c).begin(), (c).end()
  33. #define mp(a, b) make_pair(a, b)
  34. #define l(c) (int)((c).size())
  35. #define sqr(a) ((a)*(a))
  36. #define inf 0x7f7f7f7f
  37. #define pb push_back
  38. #define ppb pop_back
  39. //#define x first
  40. //#define y second
  41. typedef long long ll;
  42. typedef vector<int> vi;
  43. typedef vector<double> vd;
  44. typedef pair<int,int> pi;
  45.  
  46. /*
  47.  */
  48.  
  49. const string H[] = {
  50.    "Anka", "Chapay", "Cleo", "Troll", "Dracul", "Snowy", "Hexadecimal"
  51. };
  52.  
  53. int n;
  54. bool g[7][7];
  55. vi p;
  56. ll x[3];
  57.  
  58. typedef pair<ll, ll> LLL;
  59.  
  60. void solution()
  61. {
  62.    cin >> n;
  63.    rep(i, n) {
  64.       string a, b;
  65.       cin >> a;
  66.       cin >> b;
  67.       //if (b != "likes") throw 1;
  68.       cin >> b;
  69.       int p = find(H, H+7, a) - H;
  70.       int q = find(H, H+7, b) - H;
  71.       //if (p == 7 || q == 7) throw 1;
  72.       g[p][q] = 1;
  73.    }
  74.    ll Diff = -1, Likes = -1;
  75.    rep(i, 3) cin >> x[i];
  76.    for (int i0 = 0; i0 <= 2; i0++)
  77.    for (int i1 = 0; i1 <= 2; i1++)
  78.    for (int i2 = 0; i2 <= 2; i2++)
  79.    for (int i3 = 0; i3 <= 2; i3++)
  80.    for (int i4 = 0; i4 <= 2; i4++)
  81.    for (int i5 = 0; i5 <= 2; i5++)
  82.    for (int i6 = 0; i6 <= 2; i6++) {
  83.       vi gr[3];
  84.       gr[i0].pb(0);
  85.       gr[i1].pb(1);
  86.       gr[i2].pb(2);
  87.       gr[i3].pb(3);
  88.       gr[i4].pb(4);
  89.       gr[i5].pb(5);
  90.       gr[i6].pb(6);
  91.       if (gr[0].empty() || gr[1].empty() || gr[2].empty())
  92.          continue;
  93.       ll mini = -1, maxi = -1;
  94.       int likes = 0;
  95.       rep(i, 3) {
  96.          ll exp = x[i]/l(gr[i]);
  97.          rep(j, l(gr[i]))
  98.             for (int k = 0; k < l(gr[i]); k++)
  99.                likes += g[gr[i][j]][gr[i][k]];
  100.          if (mini == -1 || mini > exp) mini = exp;
  101.          if (maxi == -1 || maxi < exp) maxi = exp;
  102.       }
  103.       ll diff = maxi - mini;
  104.       //if (diff < 0)
  105.       if (Diff == -1 || (diff < Diff) || (diff == Diff && likes > Likes))
  106.          Diff = diff, Likes = likes;
  107.    }
  108.    cout << Diff << " " << Likes << endl;
  109. }
  110.  
  111. int main()
  112. {
  113. #ifdef MY_JUDGE
  114.    freopen("my.in", "rt", stdin);
  115.    //freopen("my.out", "wt", stdout);
  116.    int start = GetTickCount();
  117. #endif
  118.    solution();
  119. #ifdef MY_JUDGE
  120.    int finish = GetTickCount();
  121.    cerr << "Time: " << finish - start << endl;
  122. #endif
  123.    return 0;
  124. }
Advertisement
Add Comment
Please, Sign In to add comment