답안 #90049

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
90049 2018-12-20T01:32:43 Z xiaowuc1 Art Exhibition (JOI18_art) C++14
0 / 100
2 ms 460 KB
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef pair<int, int> pii;
typedef pair<pii, int> edge;
typedef pair<int, ll> pill;
typedef pair<pill, int> data;

typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;

pll l[500000];
int n;

void solve() {
  {
    int k;
    cin >> k;
    vector<pll> v;
    while(k--) {
      ll a, b;
      cin >> a >> b;
      v.push_back({a, b});
    }
    sort(v.begin(), v.end());
    for(int i = 0; i < v.size();) {
      int j = i;
      while(j < v.size() && v[i].first == v[j].first) {
        l[n].second += v[j++].second;
      }
      l[n++].first = v[(i=j)-1].first;
    }
  }
  ll ret = 0;
  int lhs = 0;
  ll sum = 0;
  for(int i = 0; i < n; i++) {
    sum += l[i].second;
    ret = max(ret, sum - (l[i].first - l[lhs].first));
    if(sum <= l[i].first - l[lhs].first) {
      lhs = i+1;
      sum = 0;
    }
    while(lhs < i && sum - (l[i].first - l[lhs].first) <= (sum - l[lhs].second) - (l[i].first - l[lhs+1].first)) {
      sum -= l[lhs++].second;
      ret = max(ret, sum - (l[i].first - l[lhs].first));
    }
  }
  cout << ret << endl;
}

int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  solve();
}

Compilation message

art.cpp: In function 'void solve()':
art.cpp:29:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i = 0; i < v.size();) {
                    ~~^~~~~~~~~~
art.cpp:31:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       while(j < v.size() && v[i].first == v[j].first) {
             ~~^~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 376 KB Output is correct
2 Incorrect 2 ms 460 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 376 KB Output is correct
2 Incorrect 2 ms 460 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 376 KB Output is correct
2 Incorrect 2 ms 460 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 376 KB Output is correct
2 Incorrect 2 ms 460 KB Output isn't correct
3 Halted 0 ms 0 KB -