28232023-01-27 19:23:41gontermarkSzivárványszámokcpp17Accepted 45/453ms4384 KiB
#include <iostream>
#include <vector>

using namespace std;

string abc="0123456789";
string n;
vector<long long>adb;
vector<long long>bdb;

long long sziv(int kezd)
{
    for(int i=kezd;i<n.length()-1;i++)
    {
        for(int j=8;j>=0;j--)
        {
            bdb[j]+=bdb[j+1]+adb[j+1];
        }
        for(int j=1;j<=9;j++)
        {
            adb[j]+=adb[j-1];
        }
    }
    long long db=0;
    for(int i=0;i<=9;i++)
    {
        db+=adb[i]+bdb[i];
    }
    return db;
}

int main()
{
    cin >> n;
    n="0"+n;
    bool jo=true;
    bool nov=true;
    int eszj;
    int szj;
    int rszj=-1;
    long long db=0;
    for(int i=1;i<n.length() && jo;i++)
    {
        if(n[i-1]<n[i] && !nov) jo=false;
        else if(n[i-1]>n[i] && nov) nov=false;
        
        
            eszj=abc.find(n[i-1]);
            szj=abc.find(n[i]);
            if(!jo)
            {
                if(rszj==-1) rszj=eszj+1;
                eszj=rszj;
                szj=rszj;
            }
            adb.clear();
            bdb.clear();
            adb.resize(10);
            bdb.resize(10);
            for(int j=0;j<szj;j++)
            {
                if(j<eszj)
                {
                    bdb[j]=1;
                }
                else if(nov)
                {
                    adb[j]=1;
                }
            }
            db+=sziv(i);
        
    }
    cout << db << endl;
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base45/45
1Accepted0/03ms2092 KiB
2Accepted0/02ms2224 KiB
3Accepted0/02ms2216 KiB
4Accepted1/12ms2364 KiB
5Accepted1/12ms2568 KiB
6Accepted1/12ms2648 KiB
7Accepted1/12ms3036 KiB
8Accepted1/12ms3052 KiB
9Accepted1/12ms3200 KiB
10Accepted1/12ms3364 KiB
11Accepted1/12ms3252 KiB
12Accepted1/12ms3384 KiB
13Accepted2/22ms3584 KiB
14Accepted2/22ms3700 KiB
15Accepted2/22ms3792 KiB
16Accepted2/22ms3864 KiB
17Accepted1/12ms3996 KiB
18Accepted2/22ms4104 KiB
19Accepted2/22ms4100 KiB
20Accepted2/22ms4108 KiB
21Accepted3/32ms4056 KiB
22Accepted2/22ms4056 KiB
23Accepted2/22ms4056 KiB
24Accepted2/22ms4184 KiB
25Accepted2/22ms4260 KiB
26Accepted2/22ms4268 KiB
27Accepted2/22ms4276 KiB
28Accepted2/22ms4276 KiB
29Accepted2/22ms4384 KiB
30Accepted2/22ms4272 KiB