Advertisement
Guest User

Untitled

a guest
Jan 19th, 2019
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.32 KB | None | 0 0
  1. /*#define _FORTIFY_SOURCE 0
  2. #pragma GCC optimize("Ofast")
  3. #pragma GCC optimize("no-stack-protector")
  4. #pragma GCC optimize("unroll-loops")
  5. #pragma GCC target("sse,sse2,sse3,ssse3,popcnt,abm,mmx,tune=native")
  6. #pragma GCC optimize("fast-math")*/
  7. #include <iostream>
  8. #include <map>
  9. #include <set>
  10. #include <vector>
  11. #include <algorithm>
  12.  
  13. using namespace std;
  14.  
  15. const int N = 1e6;
  16.  
  17. #define int long long
  18.  
  19. string b[N];
  20. pair <int, int> a[N];
  21.  
  22. signed main()
  23. {
  24. ios_base::sync_with_stdio(0);
  25. int n, p, c;
  26. cin >> n >> p >> c;
  27. for (int i = 0; i < n; i++) {
  28. cin >> a[i].first;
  29. b[i] = "Fail";
  30. a[i].second = i;
  31. }
  32. if (p == n) {
  33. for (int i = 0; i < n; i++) {
  34. cout << "Pass\n";
  35. }
  36. return 0;
  37. }
  38. sort(a, a + n);
  39. reverse(a, a + n);
  40. int etalon = a[p - 1].first;
  41. for (int i = 0; i < p; i++) {
  42. b[a[i].second] = "Pass";
  43. }
  44. // cout <<etalon;
  45. bool ok = false;
  46. for (int i = 0; i < p; i++) {
  47. if (a[i].first - c < a[p].first) b[a[i].second] = "Short", ok = true;
  48. }
  49. if (ok || a[p].first + c >= etalon) {
  50. b[a[p].second] = "Short";
  51. }
  52. for (int i = p + 1; i <= n - 1; i++) {
  53. if (a[i].first + c >= etalon) {
  54. b[a[i].second] = "Short";
  55. }
  56. }
  57. for (int i = 0; i < n; i++) {
  58. cout << b[i] << "\n";
  59. }
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement