Submission #1043465

# Submission time Handle Problem Language Result Execution time Memory
1043465 2024-08-04T09:48:53 Z YassineBenYounes Fire (BOI24_fire) C++17
13 / 100
42 ms 5876 KB
#include<bits/stdc++.h>
//#include<chrono>
//#include<random>
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
typedef double db;
ll gcd(ll a , ll b) {return b ? gcd(b , a % b) : a ;} // greatest common divisor (PGCD)
ll lcm(ll a , ll b) {return (a * b) / gcd(a , b);} // least common multiple (PPCM)
int dx[8] = {1, 0, 0, -1, 1, 1, -1, -1};
int dy[8] = {0, 1, -1, 0, 1, -1, -1, 1};
#define endl "\n"
#define ss second
#define ff first
#define all(x) (x).begin() , (x).end()
#define pb push_back
#define vi vector<int>
#define vii vector<pair<int,int>>
#define vl vector<ll>
#define vll vector<pair<ll,ll>>
#define pii pair<int,int>
#define pll pair<ll,ll>
#define pdd  pair<double,double>
#define vdd  vector<pdd>
#define speed ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#define pbds tree<pii, null_type, less<pii>,rb_tree_tag, tree_order_statistics_node_update>
using namespace __gnu_pbds;
using namespace std;
//mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
 
////////////////////Only Clear Code//////////////////////////
 
void usaco_problem(){
    freopen("milkvisits.in", "r", stdin);
    freopen("milkvisits.out", "w", stdout);
}
 
void init(){
    #ifndef ONLINE_JUDGE
 
freopen("input.txt", "r", stdin);
 
freopen("output.txt", "w", stdout);
 
#endif // ONLINE_JUDGE
}
const int mx = 305;
const int LOG = 22;
const int inf = 1e9;
const ll mod = 1e9+7;
const int sq = 320;

int n, m;
vii v;

int32_t main(){
    speed;
    cin >> n >> m;
    for(int i = 0; i < n;i++){
        int a, b;cin >> a >> b;
        if(a > b)b += m;
        v.pb({a, b});
    }
    sort(all(v));
    for(pii p : v){
        //cout << p.ff << " " << p.ss << endl;
    }
    int ans = 1e9;
    int k = -1;
    for(int i = 0; i < n;i++){
        if(v[i].ff != 0){k = i-1;break;}
    }
    for(int i = k; i <= k;i++){
        int l = v[i].ff, r = v[i].ss;
        int cnt = 1;
        int target = l+m;
        int ind = i+1;
        if(r >= target){
            ans = min(ans,cnt);
            continue;
        }
        for(int j = 0;j < n;j++){
            int last = -1;
            while(ind < n && v[ind].ff <= r){
                last = max(last, v[ind].ss);
                ind++;
            }
            if(last > r){
                r = last;
                cnt++;
            }
            else{
                cnt = 1e9;
                break;
            }
            if(r >= target){
                break;
            }
        }
        ans = min(ans,cnt);
    }
    cout << (ans == 1e9 ? -1 : ans) << endl;
}

/*
    NEVER GIVE UP!
    DOING SMTHNG IS BETTER THAN DOING NTHNG!!!
    Your Guide when stuck:
    - Continue keyword only after reading the whole input
    - Don't use memset with testcases
    - Check for corner cases(n=1, n=0)
    - Check where you declare n(Be careful of declaring it globally and in main)
*/

Compilation message

Main.cpp: In function 'int32_t main()':
Main.cpp:67:13: warning: variable 'p' set but not used [-Wunused-but-set-variable]
   67 |     for(pii p : v){
      |             ^
Main.cpp: In function 'void usaco_problem()':
Main.cpp:36:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   36 |     freopen("milkvisits.in", "r", stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Main.cpp:37:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   37 |     freopen("milkvisits.out", "w", stdout);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Main.cpp: In function 'void init()':
Main.cpp:43:8: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   43 | freopen("input.txt", "r", stdin);
      | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
Main.cpp:45:8: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   45 | freopen("output.txt", "w", stdout);
      | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 352 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 352 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 1 ms 352 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 352 KB Output is correct
9 Correct 1 ms 356 KB Output is correct
10 Correct 0 ms 356 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 0 ms 344 KB Output is correct
14 Correct 0 ms 356 KB Output is correct
15 Correct 1 ms 608 KB Output is correct
16 Correct 1 ms 612 KB Output is correct
17 Correct 1 ms 608 KB Output is correct
18 Correct 1 ms 604 KB Output is correct
19 Correct 1 ms 612 KB Output is correct
20 Correct 24 ms 3228 KB Output is correct
21 Correct 42 ms 5816 KB Output is correct
22 Correct 36 ms 5840 KB Output is correct
23 Correct 32 ms 5084 KB Output is correct
24 Correct 42 ms 5876 KB Output is correct
25 Correct 33 ms 5276 KB Output is correct
26 Correct 35 ms 5832 KB Output is correct
27 Correct 35 ms 5840 KB Output is correct
28 Correct 35 ms 5836 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Correct 0 ms 364 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Correct 1 ms 604 KB Output is correct
13 Correct 1 ms 604 KB Output is correct
14 Correct 1 ms 600 KB Output is correct
15 Correct 17 ms 3316 KB Output is correct
16 Correct 31 ms 2652 KB Output is correct
17 Incorrect 33 ms 2516 KB Output isn't correct
18 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -