Submission #2850841


Source Code Expand

#include <iostream>
#include <string>
#include <algorithm>
#include <cmath>

using namespace std;


inline long long euc(long long a,
              long long b) {

  long long r = 1;
  if(a < b) {
    r = a;
    a = b;
    b = r;
    r = 1;
  }
  while(r!=0) {
    r = a % b;
    a = b;
    b = r;
  }

  return a;

}


int main() {

  int T;
  cin >> T;

  for(int t = 0; t < T; ++t) {

    long long a, b, c, d;
    cin >> a >> b >> c >> d;

    bool is_yes = true;
    if(a < b) {
      is_yes = false;
    }
    else if(d < b) {
      is_yes = false;
    }
    else if(c+1 < b) {
      long long k = euc(b, d);
      long long a2 = a % b;
      long long q = (b-a2) / k;

      if(a2 + q*k == b) {
        if(a2 + (q-1)*k > c) is_yes = false;
      }
      else if(a2 + q*k > c) {
        is_yes = false;
      }
    }

    if(is_yes) {
      cout << "Yes" << endl;
    }
    else {
      cout << "No" << endl;
    }

  }

}

Submission Info

Submission Time
Task B - rng_10s
User k_opt
Language C++14 (GCC 5.4.1)
Score 600
Code Size 998 Byte
Status AC
Exec Time 2 ms
Memory 256 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 600 / 600
Status
AC × 2
AC × 5
Set Name Test Cases
Sample example_0, example_1
All example_0, example_1, multi_0, multi_1, multi_2
Case Name Status Exec Time Memory
example_0 AC 1 ms 256 KiB
example_1 AC 1 ms 256 KiB
multi_0 AC 2 ms 256 KiB
multi_1 AC 2 ms 256 KiB
multi_2 AC 2 ms 256 KiB