Can anyone help me finding the fault in my submission?
Difference between en1 and en2, changed 318 character(s)

~~~~~↵
#include <bits/stdc++.h>↵
using namespace std;↵
#define int long long↵
#define inf LLONG_MAX↵
#define pb push_back↵
#define deb cout<<"YES"<<endl↵
#define fi first↵
#define se second↵
#define pii pair<int,int>↵
#define lc 2*pos↵
#define rc 2*pos+1↵
#define fokus  ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);↵
    int calc(int n,int a){↵
        int x= 2*a + n-1; ↵
        x*=n; ↵
        x/=2;↵
        return x;↵

    }↵
signed main(){↵
fokus↵
    vector<int>pul(10); ↵
    pul[0]=1; ↵
    for(int i=1;i<=6;i++) pul[i]=pul[i-1]*10; ↵
    int t;cin>>t;while(t--){↵
        int a,b,c,k;cin>>a>>b>>c>>k;↵
        if (a>b) swap(a,b); ↵
        if (c-b!=1 && c-b!=0){↵
            cout<<-1<<endl;↵
            continue; ↵
        }↵
        int l=pul[a-1],r=pul[a]-1; ↵
        bool yes=0;↵
        while(l<=r){↵
            int mid=(l+r)/2; ↵
            int aa=pul[b]-1-max(pul[c-1]-pul[a-1],1ll)+1; ↵
            int cc=max(0ll,pul[b]-1+pul[a-1]-(pul[c]-1)); ↵
            aa-=cc;↵
            int prev=calc(mid-1-pul[a-1]+1,aa); ↵
            int cur=calc(mid-pul[a-1]+1,aa);↵
            // cout<<mid<<" "<<prev<<" "<<cur<<" "<<aa<<endl; ↵
            int dif=k-prev; ↵
            int tar=max(pul[c-1]-mid-1,0ll)+dif; ↵
            int mi=tar+mid; ↵
            if (prev<=k && k<=cur && mi<=pul[c]){↵
                cout<<mid<<" + "<<tar<<" = "<<mi<<endl; ↵
                yes=1; ↵
                break;↵
            }↵
            else if (cur<k) l=mid+1; ↵
            else r=mid-1;↵
        }↵
        if (!yes) cout<<-1<<endl; ↵

    }↵
}↵



// 100 ↵
// 10 90↵
// 1. cuman bisa yang lowest  ↵

// Minimal + maks dari ini buat jadiin c ↵
// Minimal = pul[a-1]↵
// Maksimal b= pul[]↵



// pul[c+1]-1 ↵
// bikin 100 perlu berapa dan terus maksimalnya berapa ~~~~~↵

Hi! So this is the problem: https://codeforces.net/contest/1836/problem/C↵
I think the solution is basically the same but I am using binary search (which is actually not needed but yeah the idea should have been the same)↵
but this is incorrect... does anyone know where is the fault or is it logic fault?↵
thank you so much!

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en3 English yooz 2024-11-13 10:21:12 224
en2 English yooz 2024-11-13 10:20:41 318
en1 English yooz 2024-11-13 10:19:53 1940 Initial revision (published)