Problem p02708 (C++) — buggy submission, verdict: Runtime Error


//		HYSO SERIOUS? WHY SO SERIOUS                            RIOUS? WHY
//SO SERIOUS? WHYSO SERIO 		 ERIOUS? WHY SO SERIOUS ? WHY WHY SO SERIOUS? WHY
//SOSERIOUSWHYS 		       OSERIOUS? WHY SO SERIOU         SERIOUS        ERIOUS? WHY SO
//SERIOUS? WHYS 		          WHY SO SERIOUS? WHY SOSERIOUS? WHYSOSERIOUS? WHY SO SERIOUS?WHY
//SO SE 		           ERIOUS? WHY SO SERIOUS? WHY SO SERIOUS? WHY SO SERIOUS? WHY SOSERIO 		           WHY
//SO SERIOUS? WHY SO SERIOUS? WHY SO SERIOUS? WHY SO SERIOUS? WH 		            SERIOUS?WHYSO
//SERIOUS? WHY SO SERIOUS? WHY SO SERIOUS? WHYSO SE 		              ?WHYSOSERIOUS?WHY SO
//SERIOUS? WHY SO SERIOUS?WHYSO SERIOUS? 		                           OSERIOUS? WHY SO SERIOUS?WHYSOSER
//		                                 HYSOSERIOUS?WHYSOSERI
//		                                     SOSERIOUS?W
//		                                         SER
//		                                          W

#include <algorithm>
#include <bits/stdc++.h>
#include <cmath>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#include <iomanip>
#include <iostream>
#include <map>
#include <queue>
#include <string>
#include <tuple>
#include <vector>
using namespace __gnu_pbds;
using namespace std;
#define ll long long int
#define read(a)                                                                \\
  long long int a;                                                             \\
  cin >> a;
#define readstr(s)                                                             \\
  string s;                                                                    \\
  cin >> s;
#define readc(c)                                                               \\
  char c;                                                                      \\
  cin >> c;
#define readarr(a, l)                                                          \\
  long long int a[l] = {0};                                                    \\
  for (ll i = 0; i < l; i++)                                                   \\
    cin >> a[i];
#define loop(i, a, b) for (ll i = a; i < b; i++)
#define rloop(i, a, b) for (ll i = a; i > b; i--)
#define loopitr(vec) for (auto it = vec.begin(); it != vec.end(); it++)
#define ff first
#define ss second
#define readmtrx(i, j, a, b)                                                   \\
  ll arr[a][b] = {0};                                                          \\
  for (ll i = 0; i < a; i++)                                                   \\
    for (ll j = 0; j < b; j++)                                                 \\
      cin >> arr[i][j];
#define v(pi) vector<ll> pi
#define all(a) a.begin(), a.end()
#define yes cout << "YES" << endl;
#define no cout << "NO" << endl;
#define sc(x) cout << (#x) << " is " << (x) << endl;
#define vp(pi) vector<pair<ll, ll>> pi
#define fast                                                                   \\
  ios_base::sync_with_stdio(false);                                            \\
  cin.tie(0);
#define pb(p) push_back(p)
#define mp make_pair
#define mi(lol) map<ll, ll> lol
#define fsort(vec) sort(vec.begin(), vec.end())
#define rsort(vec) sort(vec.begin(), vec.end(), compare)
#define Endl endl
#define ordered_set                                                            \\
  tree<int, null_type, less<int>, rb_tree_tag,                                 \\
       tree_order_statistics_node_update>
#define roundoff std::cout << std::setprecision(15)
#define inf 9223372036854775807
#define infn -9223372036854775807
#define pi 3.14159265358979323846
const int mod = 1e9 + 7;
#define REVERSE(vec) reverse(vec.begin(), vec.end())

ll gcd(ll a, ll b) { return b ? gcd(b, a % b) : a; }
ll lcm(ll a, ll b) { return a / gcd(a, b) * b; }

// code start from here

int main() {
  fast;
  read(n) read(k) ll a = 0;
  loop(i, k, n + 2) { a = (a + i * (n - i + 1) + 1) % mod; }
  cout << a << "\\n";
  return 0;
}

// ends here

Error: 0

Fixed submission:


//		HYSO SERIOUS? WHY SO SERIOUS                            RIOUS? WHY
//SO SERIOUS? WHYSO SERIO 		 ERIOUS? WHY SO SERIOUS ? WHY WHY SO SERIOUS? WHY
//SOSERIOUSWHYS 		       OSERIOUS? WHY SO SERIOU         SERIOUS        ERIOUS? WHY SO
//SERIOUS? WHYS 		          WHY SO SERIOUS? WHY SOSERIOUS? WHYSOSERIOUS? WHY SO SERIOUS?WHY
//SO SE 		           ERIOUS? WHY SO SERIOUS? WHY SO SERIOUS? WHY SO SERIOUS? WHY SOSERIO 		           WHY
//SO SERIOUS? WHY SO SERIOUS? WHY SO SERIOUS? WHY SO SERIOUS? WH 		            SERIOUS?WHYSO
//SERIOUS? WHY SO SERIOUS? WHY SO SERIOUS? WHYSO SE 		              ?WHYSOSERIOUS?WHY SO
//SERIOUS? WHY SO SERIOUS?WHYSO SERIOUS? 		                           OSERIOUS? WHY SO SERIOUS?WHYSOSER
//		                                 HYSOSERIOUS?WHYSOSERI
//		                                     SOSERIOUS?W
//		                                         SER
//		                                          W

#include <algorithm>
#include <bits/stdc++.h>
#include <cmath>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#include <iomanip>
#include <iostream>
#include <map>
#include <queue>
#include <string>
#include <tuple>
#include <vector>
using namespace __gnu_pbds;
using namespace std;
#define ll long long int
#define read(a)                                                                \\
  long long int a;                                                             \\
  cin >> a;
#define readstr(s)                                                             \\
  string s;                                                                    \\
  cin >> s;
#define readc(c)                                                               \\
  char c;                                                                      \\
  cin >> c;
#define readarr(a, l)                                                          \\
  long long int a[l] = {0};                                                    \\
  for (ll i = 0; i < l; i++)                                                   \\
    cin >> a[i];
#define loop(i, a, b) for (ll i = a; i < b; i++)
#define rloop(i, a, b) for (ll i = a; i > b; i--)
#define loopitr(vec) for (auto it = vec.begin(); it != vec.end(); it++)
#define ff first
#define ss second
#define readmtrx(i, j, a, b)                                                   \\
  ll arr[a][b] = {0};                                                          \\
  for (ll i = 0; i < a; i++)                                                   \\
    for (ll j = 0; j < b; j++)                                                 \\
      cin >> arr[i][j];
#define v(pi) vector<ll> pi
#define all(a) a.begin(), a.end()
#define yes cout << "YES" << endl;
#define no cout << "NO" << endl;
#define sc(x) cout << (#x) << " is " << (x) << endl;
#define vp(pi) vector<pair<ll, ll>> pi
#define fast                                                                   \\
  ios_base::sync_with_stdio(false);                                            \\
  cin.tie(0);
#define pb(p) push_back(p)
#define mp make_pair
#define mi(lol) map<ll, ll> lol
#define fsort(vec) sort(vec.begin(), vec.end())
#define rsort(vec) sort(vec.begin(), vec.end(), compare)
#define Endl endl
#define ordered_set                                                            \\
  tree<int, null_type, less<int>, rb_tree_tag,                                 \\
       tree_order_statistics_node_update>
#define roundoff std::cout << std::setprecision(15)
#define inf 9223372036854775807
#define infn -9223372036854775807
#define pi 3.14159265358979323846
const int mod = 1e9 + 7;
#define REVERSE(vec) reverse(vec.begin(), vec.end())

ll gcd(ll a, ll b) { return b ? gcd(b, a % b) : a; }
ll lcm(ll a, ll b) { return a / gcd(a, b) * b; }

// code start from here

ll result[1000] = {0};
ll fact(ll n) {
  if (n >= 0) {
    result[0] = 1;
    for (ll i = 1; i <= n; ++i) {
      result[i] = (i * result[i - 1]) % mod;
    }
    return (result[n]) % mod;
  }
}
int main() {
  fast;
  read(a) read(b)
      // ll p=pow(2,a+1);
      ll p = 1;
  loop(j, 0, a + 1) {
    p *= 2;
    p = p % mod;
  }
  ll m = fact(b);
  ll n = fact(a + 1);
  ll t = fact(a + 1 - b);
  ll count = (m * t) % mod;
  count = n / count;

  cout << abs(p - count) << endl;
  return 0;
}

// ends here