Raslboyy

114093v2

Feb 6th, 2020
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.40 KB | None | 0 0
  1. #include <iostream>
  2. #include <bits/stdc++.h>
  3. #define mp make_pair
  4. #define pb push_back
  5. #define eb emplace_back
  6. #define x first
  7. #define y second
  8. #define sz(x) (int)x.size()
  9. #define all(x) begin(x), end(x)
  10. #define rall(x) rbegin(x), rend(x)
  11. #define FOR(i,a,b) for (int i = (a); i < (b); i++)
  12. #define RFOR(i,b,a) for (int i = (b) - 1; i >= (a); i--)
  13.  
  14. using namespace std;
  15.  
  16. typedef unsigned long long ull;
  17. typedef long long ll;
  18. typedef long double ld;
  19. typedef pair<int, int> pi;
  20. typedef pair<ll, ll> pl;
  21. typedef vector<int> veci;
  22. typedef vector<bool> vecb;
  23. typedef vector<vector<int>> vvi;
  24. typedef vector<vector<bool>> vvb;
  25.  
  26. int main() {
  27.     ios::sync_with_stdio(false);
  28.     cin.tie(nullptr);
  29.     cout.tie(nullptr);
  30.  
  31.     int n, p, c;
  32.     cin >> n >> p >> c;
  33.     vector<pi> vec(n);
  34.     for (int i = 0; i < n; i++) {
  35.         cin >> vec[i].x;
  36.         vec[i].y = i;
  37.     }
  38.     veci res(n);
  39.     sort(rall(vec));
  40.     int l = 0, r = 0;
  41.     for (int i = 0; i < n; i++){
  42.         while(vec[i].x + c < vec[l].x)
  43.             l++;
  44.         if (l >= p)
  45.             res[vec[i].y] = 2;
  46.         while(r < n && vec[i].x - c < vec[r].x)
  47.             r++;
  48.         if (r - 1 < p)
  49.             res[vec[i].y] = 3;
  50.         if (!res[vec[i].y])
  51.             res[vec[i].y] = 1;
  52.     }
  53.     for (int i = 0; i < n; i++)
  54.         cout << (res[i] == 1 ? "Short" : res[i] == 2 ? "Fail" : "Pass") << "\n";
  55.  
  56.     return 0;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment