답안 #500661

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
500661 2021-12-31T17:44:47 Z 600Mihnea Sails (IOI07_sails) C++17
40 / 100
1000 ms 4040 KB
#include <bits/stdc++.h>

using namespace std;

#define int long long

int gauss(int x) {
  return x * (x + 1) / 2;
}

struct Data {
  int total;
  int need;
};

bool operator < (Data a, Data b) {
  return a.total < b.total;
}

const int N = (int) 1e5 + 7;
const int INF = (int) 1e18;
int n;
int cnt[N];
Data guys[N];

signed main() {
  ios::sync_with_stdio(0); cin.tie(0);
 // freopen ("input", "r", stdin);
  cin >> n;
  for (int i = 1; i <= n; i++) {
    cin >> guys[i].total >> guys[i].need;
  }
  sort(guys + 1, guys + n + 1);


  for (int i = 1; i <= n; i++) {
    cnt[0] += (guys[i].total - guys[i - 1].total);
    int need = guys[i].need;
    vector<pair<int, int>> after;
    for (int s = 0; s <= n && need; s++) {
      int take = min(need, cnt[s]);
      cnt[s] -= take;
      need -= take;
      after.push_back({s + 1, take});
    }
    assert(need == 0);
    for (auto &it : after) {
      cnt[it.first] += it.second;
    }
  }

  int sol = 0;
  for (int i = 1; i <= n; i++) {
    sol += cnt[i] * gauss(i - 1);
  }
  cout << sol << "\n";

  return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 324 KB Output is correct
2 Correct 0 ms 320 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 320 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 332 KB Output is correct
2 Correct 2 ms 332 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 17 ms 336 KB Output is correct
2 Correct 1 ms 324 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 142 ms 624 KB Output is correct
2 Execution timed out 1076 ms 1536 KB Time limit exceeded
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1070 ms 2472 KB Time limit exceeded
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1083 ms 1956 KB Time limit exceeded
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1083 ms 2852 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1035 ms 4040 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1077 ms 3336 KB Time limit exceeded
2 Halted 0 ms 0 KB -