Submission #1274947

#TimeUsernameProblemLanguageResultExecution timeMemory
1274947muhammad-mutahirConstruction Project 2 (JOI24_ho_t2)C++20
0 / 100
0 ms568 KiB
#include <bits/stdc++.h>
using namespace std;

#define print(l) for(auto i:l) cout<<i<<" ";cout<<endl;
#define input(t,l,n) vector<t>l(n);for(int i = 0;i<n;i++)cin>>l[i];
#define int long long
#define pb push_back
#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update> 
#define all(l) l.begin(),l.end()
#define pii pair<int,int>
#define fi first
#define se second

const int M = 998244853;

int inf = 1e18;

void io(){
    #ifndef ONLINE_JUDGE
    freopen("input.in","r",stdin);
    // freopen("outputf.in","w",stdout);
    #endif

    ios::sync_with_stdio(0);//DO NOT USE IN INTERACTIVE
    cin.tie(0), cout.tie(0);
    cout << fixed<<setprecision(9);

}

int n,T;

void solve(){
     cin>>n>>T;
     input(int,l,n);
     if(n == 2){
        sort(all(l));
        int x = (abs(l[0]%T-l[1]%T)+1)/2;
        int y = (l[0]/T)*T +l[1]%T;
        x = (abs(y-l[0])+1)/2;
        cout<<min(x, (abs(l[0]%T-l[1]%T)+1)/2)<<endl;
        return;
     }
     // print(l);
     int ans = 1e18;
     for(int i = 1;i<8*T;i++){
        int an = -1e18;
        for(int j:l){
            if(j >= i){
                int cl = ((j-i)+T-1)/T;
                int fl = (j-i)/T;
                if(j>cl*T)
                    cl = j-cl*T;
                else
                    cl = j; 

                fl = j-fl*T;
                // cout<<i<<" "<<j<<" "<<fl<<" "<<cl<<endl;
                an = max(an,min({abs(i-cl),abs(i-fl)}));
            }
            else{
                an = max(an,abs(i-j));
            }

        }
        ans = min(ans,an);
        an = 0;
     }
     cout<<ans<<endl;

}






signed main(){
    // io();
    int t = 1;

    while(t--) solve();

}

Compilation message (stderr)

Main.cpp: In function 'void io()':
Main.cpp:20:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   20 |     freopen("input.in","r",stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...