1759B - Lost Permutation - CodeForces Solution


math *800

Please click on ads to support us..

Python Code:

for i in range(int(input())):
    m,s=map(int,input().split())
    

    l=list(map(int,input().split()))
    a=sum(l)
    value=a+s
        i=1

    while True:
        if i not in l:
            l.append(i)
                        a=a+i
                    if a>=value:
            break
        i=i+1
    if a==value and value==(len(l)*(len(l)+1)/2) :
                                print("YES")
    else:
        print("NO")

C++ Code:

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

#ifdef LOCAL
  #include "../algorithms/misc/debug.h"
#else
  #define debug(...) 42
#endif

using ll = long long;
using db = long double;
 
using vi = vector<int>;
using vl = vector<ll>;
using vd = vector<db>;

using pi = pair<int, int>;
using pl = pair<ll, ll>;
 
// pairs
#define mp make_pair
#define f first
#define s second
 
// vectors
#define sz(v) (int)(v.size())
#define all(v) v.begin(), v.end()
#define rall(v) v.rbegin(), v.rend()
#define pb push_back

int32_t main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);

  int t; cin >> t;

  while (t--) {
    int m, sum; cin >> m >> sum;

    map<int, bool> marked;
    int mVal1 = 0, mVal2 = 0;
    for (int i = 0; i < m; i++) {
      int x; cin >> x;
      marked[x] = true;
      mVal1 = max(mVal1, x);
    }

    bool ok = true;
    for (int i = 1; i <= 100 && sum; i++) {
      if (!marked[i]) {
        if (sum - i >= 0) {
          sum -= i; mVal2 = i;
          marked[i] = true;
        } else {
          ok = false;
          break;
        }
      }
    }

    for (int i = 1; i <= max(mVal1, mVal2); i++) {
      ok &= marked[i];
    }

    cout << (ok ? "yes\n" : "no\n");
  }

}


Comments

Submit
0 Comments
More Questions

1271A - Suits
259B - Little Elephant and Magic Square
1389A - LCM Problem
778A - String Game
1382A - Common Subsequence
1512D - Corrupted Array
667B - Coat of Anticubism
284B - Cows and Poker Game
1666D - Deletive Editing
1433D - Districts Connection
2B - The least round way
1324A - Yet Another Tetris Problem
246B - Increase and Decrease
22E - Scheme
1566A - Median Maximization
1278A - Shuffle Hashing
1666F - Fancy Stack
1354A - Alarm Clock
1543B - Customising the Track
1337A - Ichihime and Triangle
1366A - Shovels and Swords
919A - Supermarket
630C - Lucky Numbers
1208B - Uniqueness
1384A - Common Prefixes
371A - K-Periodic Array
1542A - Odd Set
1567B - MEXor Mixup
669A - Little Artem and Presents
691B - s-palindrome