Submission #18976874


Source Code Expand

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef double db;
#define x first
#define y second
#define bg begin()
#define ed end()
#define pb push_back
#define mp make_pair
#define sz(a) int((a).size())
#define R(i,n) for(int i(0);i<(n);++i)
#define L(i,n) for(int i((n)-1);i>=0;--i)
const int iinf=0x3f3f3f3f;
const ll linf=0x3f3f3f3f3f3f3f3f;

//Data
const int N=5e5+2;
int n,a[N],b[N];
string str;

//Function
bool coback(bool res){
    R(i,n) a[i]=b[i];
    // cout<<"res="<<res<<'\n';
    return res;
}
bool check(int m){
    // cout<<"checking:"<<m<<'\n';
    R(i,n) b[i]=a[i];
    int x=m*9;
    R(i,n){
        if(a[i]<0){
            int inc=(abs(a[i])+9)/10;
            if(inc&&i==n-1) return coback(true);
            a[i+1]-=inc,a[i]+=inc*10;
        }
        if(a[i]<=x%10) x+=a[i]-x%10;
        else x+=a[i]-x%10-10;
        if(x<0) return coback(false);
        if(x/10&&i==n-1) return coback(true);
        a[i]-=x%10,a[i+1]-=x/10;
    }
    return coback(true);
}

//Main
int main(){
    // freopen("AGC011E.txt","r",stdin);
    ios::sync_with_stdio(false);
    cin.tie(0),cout.tie(0);
    // cout<<"i love fyy\n";
    cin>>str,n=sz(str);
    R(i,n) a[i]=str[n-1-i]-='0';
    // cout<<"mobaizhouayang\n";
    int l=0,r=n<<1;
    while(r-l>1){
        int mid=(l+r)>>1;
        if(check(mid)) r=mid;
        else l=mid;
    }
    cout<<r<<'\n';
    return 0;
}

Submission Info

Submission Time
Task E - Increasing Numbers
User George1123
Language C++ (GCC 9.2.1)
Score 1300
Code Size 1466 Byte
Status AC
Exec Time 94 ms
Memory 7696 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 1300 / 1300
Status
AC × 4
AC × 40
Set Name Test Cases
Sample sample1.txt, sample2.txt, sample3.txt, sample4.txt
All sample1.txt, sample2.txt, sample3.txt, sample4.txt, in1.txt, in10.txt, in11.txt, in12.txt, in13.txt, in14.txt, in15.txt, in16.txt, in17.txt, in18.txt, in19.txt, in2.txt, in20.txt, in21.txt, in22.txt, in23.txt, in24.txt, in25.txt, in26.txt, in27.txt, in28.txt, in29.txt, in3.txt, in30.txt, in31.txt, in4.txt, in5.txt, in500000.txt, in6.txt, in7.txt, in8.txt, in9.txt, sample1.txt, sample2.txt, sample3.txt, sample4.txt
Case Name Status Exec Time Memory
in1.txt AC 10 ms 3640 KiB
in10.txt AC 86 ms 7588 KiB
in11.txt AC 86 ms 7584 KiB
in12.txt AC 94 ms 7584 KiB
in13.txt AC 89 ms 7648 KiB
in14.txt AC 88 ms 7632 KiB
in15.txt AC 86 ms 7628 KiB
in16.txt AC 86 ms 7628 KiB
in17.txt AC 79 ms 7376 KiB
in18.txt AC 92 ms 7660 KiB
in19.txt AC 91 ms 7620 KiB
in2.txt AC 88 ms 7648 KiB
in20.txt AC 90 ms 7628 KiB
in21.txt AC 92 ms 7628 KiB
in22.txt AC 85 ms 7660 KiB
in23.txt AC 88 ms 7632 KiB
in24.txt AC 89 ms 7584 KiB
in25.txt AC 84 ms 7632 KiB
in26.txt AC 88 ms 7584 KiB
in27.txt AC 68 ms 6436 KiB
in28.txt AC 86 ms 7632 KiB
in29.txt AC 86 ms 7584 KiB
in3.txt AC 91 ms 7644 KiB
in30.txt AC 91 ms 7688 KiB
in31.txt AC 88 ms 7640 KiB
in4.txt AC 89 ms 7616 KiB
in5.txt AC 70 ms 7696 KiB
in500000.txt AC 86 ms 7636 KiB
in6.txt AC 91 ms 7628 KiB
in7.txt AC 75 ms 6764 KiB
in8.txt AC 82 ms 7636 KiB
in9.txt AC 88 ms 7536 KiB
sample1.txt AC 2 ms 3548 KiB
sample2.txt AC 5 ms 3560 KiB
sample3.txt AC 2 ms 3616 KiB
sample4.txt AC 2 ms 3628 KiB