Thursday, 27 July 2017

Lightoj 1198 - Karate Competition

  1. using namespace std;
  2. #include <bits/stdc++.h>
  3.  
  4. void solve() {
  5.   int n;
  6.   cin >> n;
  7.   vector<int> a(n), b(n);
  8.   for (int i = 0; i < n; ++i)
  9.     cin >> a[i];
  10.   for (int i = 0; i < n; ++i)
  11.     cin >> b[i];
  12.   sort(a.begin(), a.end());
  13.   sort(b.rbegin(), b.rend());
  14.  
  15.   int score = 0;
  16.   for (int i = 0; i < n; ++i) {
  17.     for (int j = 0; j < n; ++j) if (a[j] != -1) {
  18.       if (a[j] > b[i]) {
  19.         score += 2;
  20.         a[j] = b[i] = -1;
  21.         break;
  22.       }
  23.     }
  24.   }
  25.  
  26.   for (int i = 0; i < n; ++i) if (b[i] != -1) {
  27.     for (int j = 0; j < n; ++j) if (a[j] != -1) {
  28.       if (a[j] == b[i]) {
  29.         score += 1;
  30.         a[j] = b[i] = -1;
  31.         break;
  32.       }
  33.     }
  34.   }
  35.  
  36.   printf("%d\n", score);
  37.  
  38. }
  39.  
  40. int main() {
  41.   int tc; cin >> tc;
  42.   for (int i = 0; i < tc; ++i) {
  43.     printf("Case %d: ", i + 1);
  44.     solve();
  45.   }
  46.   return 0;
  47. }

4 comments:

Most Featured Post

Lightoj 1159 - Batman

http://lightoj.com/volume_showproblem.php?problem=1159 problem analysis: First i thought of this as if s1, s2 and s3 are those three str...