YEZAELP

CUBE-170: Cupid

Jul 11th, 2020
73
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.08 KB | None
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int main(){
  4.     int n,k;
  5.     scanf("%d%d",&n,&k);
  6.     int M[n+1],F[n+1];
  7.     for(int i=1;i<=n;i++){
  8.         scanf("%d%d",&M[i],&F[i]);
  9.     }
  10.  
  11.     for(int i=1;i<=n;i++){
  12.         int J1=i-k,J2=i+k;
  13.         if(J1<1) J1=1;
  14.         if(J2>n) J2=i;
  15.  
  16.         for(int j=J1;j<=J2;j++){
  17.             if(M[i]==0) break;
  18.             else if(F[j]==0) continue;
  19.             if(M[i]>F[j]) {
  20.                 M[i]=M[i]-F[j];
  21.                 F[j]=0;
  22.             }
  23.             else{
  24.                 F[j]=F[j]-M[i];
  25.                 M[i]=0;
  26.             }
  27.         }
  28.         for(int j=J1;j<=J2;j++){
  29.             if(F[i]==0) break;
  30.             else if(M[j]==0) continue;
  31.             if(M[j]>F[i]) {
  32.                 M[j]=M[j]-F[i];
  33.                 F[i]=0;
  34.             }
  35.             else{
  36.                 F[i]=F[i]-M[j];
  37.                 M[j]=0;
  38.             }
  39.         }
  40.     }
  41.     bool check=true;
  42.     for(int i=1;i<=n;i++){
  43.         if(M[i]!=0 or F[i]!=0) check=false;
  44.     }
  45.     if(!check) printf("NO");
  46.     else printf("YES");
  47.  
  48.     return 0;
  49. }
RAW Paste Data Copied