답안 #588067

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
588067 2022-07-02T16:59:12 Z Mounir Self Study (JOI22_ho_t2) C++14
0 / 100
1000 ms 5016 KB
#include <bits/stdc++.h>
#define all(v) v.begin(), v.end()
#define sz(x) (int)x.size()
#define pb push_back
#define pii pair<int, int>
#define chmin(x, v) x = min(x, v)
#define chmax(x, v) x = max(x, v)
#define print(x) cout << #x << " est " << x << endl;
#define x first
#define y second
#define int long long
using namespace std;

const int N = 1e6;
int nCours, nWeeks;
int a[N], b[N];

bool isOk(int bInf){
      int aAllouer = 0;
      for (int iCours = 0; iCours < nCours; ++iCours){
            int besoin = ceil(bInf/(long double)(a[iCours]));
            if (besoin <= nWeeks)
                  aAllouer += nWeeks - besoin;
            else {
                  int reste = bInf - nWeeks * a[iCours];
                  reste = ceil((long double)(reste)/b[iCours]);
                  aAllouer -= reste;
            }
      }

    //  cout << aAllouer
      return aAllouer >= 0;
}

signed main(){ 
      ios::sync_with_stdio(false);
      cin.tie(nullptr);
      cout.tie(nullptr);
      cin >> nCours >> nWeeks;
      for (int i = 0; i < nCours; ++i)
            cin >> a[i];
      for (int i = 0; i < nCours; ++i){
            cin >> b[i];
            chmax(a[i], b[i]);
      }

      int gauche = 0, droite = nWeeks * 1e9;
      while (droite > gauche){
            int mid = (gauche + droite)/2 + 1;
            if (isOk(mid))
                  gauche = mid;
            else
                  droite = mid - 1;
      }
      cout << gauche << endl;
      return 0;   
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 0 ms 212 KB Output is correct
10 Correct 2 ms 340 KB Output is correct
11 Correct 115 ms 5016 KB Output is correct
12 Correct 119 ms 5000 KB Output is correct
13 Correct 79 ms 4948 KB Output is correct
14 Correct 80 ms 4904 KB Output is correct
15 Correct 0 ms 212 KB Output is correct
16 Execution timed out 1095 ms 4952 KB Time limit exceeded
17 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Execution timed out 1095 ms 4952 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 0 ms 212 KB Output is correct
10 Correct 2 ms 340 KB Output is correct
11 Correct 115 ms 5016 KB Output is correct
12 Correct 119 ms 5000 KB Output is correct
13 Correct 79 ms 4948 KB Output is correct
14 Correct 80 ms 4904 KB Output is correct
15 Correct 0 ms 212 KB Output is correct
16 Execution timed out 1095 ms 4952 KB Time limit exceeded
17 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Execution timed out 1095 ms 4952 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 0 ms 212 KB Output is correct
10 Correct 2 ms 340 KB Output is correct
11 Correct 115 ms 5016 KB Output is correct
12 Correct 119 ms 5000 KB Output is correct
13 Correct 79 ms 4948 KB Output is correct
14 Correct 80 ms 4904 KB Output is correct
15 Correct 0 ms 212 KB Output is correct
16 Execution timed out 1095 ms 4952 KB Time limit exceeded
17 Halted 0 ms 0 KB -