Submission #1300064

#TimeUsernameProblemLanguageResultExecution timeMemory
1300064loomBring Down the Grading Server (CEOI23_gradingserver)C++20
10 / 100
1522 ms214920 KiB
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define inf (int)2e18
#define nl '\n'

const int N = 301;
int dp[N][N][N];

void solve(){
   int s, q;
   cin>>s>>q;

   for(int c1 = 0; c1 < N; c1++){
      for(int c2 = 0; c2 < N; c2++){
         for(int f2 = 0; f2 < N; f2++){
            int &x = dp[c1][c2][f2];

            if(c1 == 0){
               x = N;
               continue;
            }
            if(c2 == 0){
               x = 0;
               continue;
            }

            int l = 0, r = N;
            while(l < r){
               int f1 = (l+r)/2;

               int ff = (f2 > 0 and dp[c1][c2][f2-1] <= max(0ll, f1-1));
               int fa = (f2 > 0 and dp[max(0ll, c1 - max(0ll, c2 - s*f1))][c2][f2-1] <= f1);
               int af = 0, aa = 0;
               
               int p = c1 - s*f2;
               if(p > 0){
                  af = (dp[c1][max(0ll, c2 - p)][f2] <= max(0ll, f1-1));
                  aa = (dp[max(0ll, c1 - max(0ll, c2 - p - s*f1))][max(0ll, c2 - p)][f2] <= f1);
               }

               if(ff and fa or c2 - p <= 0 or af and aa) r = f1;
               else l = f1+1;
            }

            x = l;
         }
      }
   }

   while(q--){
      int c1, f1, c2, f2;
      cin>>c1>>f1>>c2>>f2;

      cout<<(dp[c1][c2][f2] <= f1 ? "YES" : "NO")<<nl;
   }
}

signed main(){
   ios_base::sync_with_stdio(0);
   cin.tie(NULL);cout.tie(NULL);

   int t = 1;
   //cin>>t;
   while(t--) solve();

   return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...