1326C - Permutation Partitions - CodeForces Solution


combinatorics greedy math *1300

Please click on ads to support us..

C++ Code:

#include <bits/stdc++.h>
using namespace std ;

#define int long long
#define test long long t ; cin >> t ; while (t--)
#define gofast() ios_base::sync_with_stdio(false) ; cin.tie(0) ; cout.tie(0)
#define mod (int)998244353

int32_t main() {
    gofast() ;

    int n , k ;
    cin >> n >> k ;
    int a[n] ;

    for (int i=0 ; i<n ; i++)
        cin >> a[i] ;

    int ans = 1 ;
    for (int i=0 , j=-1 ; i<n ; i++) {
        if (a[i] > n-k) {
            if (j == -1)
                j = i ;

            else {
                ans *= i-j ;
                ans %= mod ;
                j = i ;
            }
        }
    }

    cout << k*(n+n-k+1)/2 << " " << ans ;

    return 0 ;
}


Comments

Submit
0 Comments
More Questions

1409D - Decrease the Sum of Digits
1476E - Pattern Matching
1107A - Digits Sequence Dividing
1348A - Phoenix and Balance
1343B - Balanced Array
1186A - Vus the Cossack and a Contest
1494A - ABC String
1606A - AB Balance
1658C - Shinju and the Lost Permutation
1547C - Pair Programming
550A - Two Substrings
797B - Odd sum
1093A - Dice Rolling
1360B - Honest Coach
1399C - Boats Competition
1609C - Complex Market Analysis
1657E - Star MST
1143B - Nirvana
1285A - Mezo Playing Zoma
919B - Perfect Number
894A - QAQ
1551A - Polycarp and Coins
313A - Ilya and Bank Account
1469A - Regular Bracket Sequence
919C - Seat Arrangements
1634A - Reverse and Concatenate
1619C - Wrong Addition
1437A - Marketing Scheme
1473B - String LCM
1374A - Required Remainder