제출 #893455

#제출 시각아이디문제언어결과실행 시간메모리
893455AI_2512금 캐기 (IZhO14_divide)C++17
0 / 100
0 ms348 KiB
#include <bits/stdc++.h>
using namespace std;

struct camp{
  long long x, g, e;
};

signed main() {
  long long n, maxx = 0, sumx = 0, sumg= 0, sume = 0, left = 0, right = 0;
  cin >> n;
  vector<camp> vec(n);
  for (int i = 0; i< n; i++) {
    cin >> vec[i].x >> vec[i].g >> vec[i].e;
  }

  while (left <=n-1){
    sumx = vec[right].x-vec[left].x;
    sume +=vec[right].e;
    if(sume>=sumx && right<n-1){
      sumg += vec[right].g;
      maxx = max(sumg,maxx);
      right++;
    }else{
      sumg-=vec[left].g;
      maxx = max(sumg,maxx);
      sume-=vec[left].e;
      sume-=vec[right].e;
      left++;
      if (left>right){
        right = left;
      }
    }
    sume = abs(sume);
    sumg = abs(sumg);
    sumx = abs(sumx);
  }
  maxx = max(sumg,maxx);
  cout << maxx;
  return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...