Advertisement
Guest User

Untitled

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