1606C - Banknotes - CodeForces Solution


greedy number theory *1400

Please click on ads to support us..

Python Code:

def solve():
    n,k=list(map(int,input().split()))
    a=list(map(int,input().split()))
    
    val=0
    for i in range(n):
        if i==n-1:
            val+=k*(10**a[i])
            break
        
        diff=10**(a[i+1]-a[i])
        if k<diff-1:
            val+=k*(10**a[i])
            break
        
        if i==0:
            k-=diff-2
            val+=diff-2
        else:
            k-=diff-1
            val+=(diff-1)*(10**a[i])
    
    print(val+1)

t = int(input())
for i in range(t):
    solve()

C++ Code:

#include<bits/stdc++.h>
using namespace std;
#define IOS std::ios::sync_with_stdio(false); cin.tie(NULL);cout.tie(NULL);
#define pb push_back 
#define pf push_front
#define mod 1000000007ll //998244353ll
#define lld long double
#define ll long long int 




void solve(){
    ll n,k;
    cin>>n>>k;
    k++;
    vector<int>v(n,0);
    for(int i=0;i<n;i++)cin>>v[i];
    sort(v.begin(),v.end());
    ll ans=0;
    for (int i=0;i<n && k>0 ;i++){
        ll d=pow(10,v[i]);
        if(i != n-1){
            ll diff=v[i+1]-v[i];
            ll x=pow(10,diff);
            x-=1;
            ll y=min(k,x);
            k-=y;
            ans+=d*y;
            
        }
        else{
            ans+=k*d;
            k=0;
        }
        
    }
    cout<<ans<<endl;
}

int main()
{
    IOS
    int t;
    cin>>t;
    while(t--)
        solve();
    return 0;
}


Comments

Submit
0 Comments
More Questions

415. Add Strings
22. Generate Parentheses
13. Roman to Integer
2. Add Two Numbers
515. Find Largest Value in Each Tree Row
345. Reverse Vowels of a String
628. Maximum Product of Three Numbers
1526A - Mean Inequality
1526B - I Hate 1111
1881. Maximum Value after Insertion
237. Delete Node in a Linked List
27. Remove Element
39. Combination Sum
378. Kth Smallest Element in a Sorted Matrix
162. Find Peak Element
1529A - Eshag Loves Big Arrays
19. Remove Nth Node From End of List
925. Long Pressed Name
1051. Height Checker
695. Max Area of Island
402. Remove K Digits
97. Interleaving String
543. Diameter of Binary Tree
124. Binary Tree Maximum Path Sum
1465. Maximum Area of a Piece of Cake After Horizontal and Vertical Cuts
501A - Contest
160A- Twins
752. Open the Lock
1535A - Fair Playoff
1538F - Interesting Function