Submission #1016797

#TimeUsernameProblemLanguageResultExecution timeMemory
1016797TAhmed33Žarulje (COI15_zarulje)C++98
0 / 100
13 ms9820 KiB
#include <bits/stdc++.h> using namespace std; const int MOD = 1e9 + 7; const int M = 1e6 + 25; int add (int a, int b) { a += b; if (a >= MOD) a -= MOD; return a; } int sub (int a, int b) { a -= b; if (a < 0) a += MOD; return a; } int mul (int a, int b) { return (a * 1ll * b) % MOD; } int power (int a, int b) { if (!b) return 1; int u = power(a, b >> 1); u = mul(u, u); if (b & 1) u = mul(u, a); return u; } int fact[M], inv[M]; int nCr (int a, int b) { if (a < b) return 0; return mul(fact[a], mul(inv[b], inv[a - b])); } void pre () { fact[0] = 1; for (int i = 1; i < M; i++) { fact[i] = mul(i, fact[i - 1]); } inv[M - 1] = power(fact[M - 1], MOD - 2); for (int i = M - 2; i >= 0; i--) { inv[i] = mul(i + 1, inv[i + 1]); } } int n, k, a[M]; void solve () { cin >> n >> k; for (int i = 1; i <= n; i++) { cin >> a[i]; } while (k--) { int x; cin >> x; map <int, int> f, g; int mn = 1e9; for (int i = x - 1; i >= 1; i--) { if (a[i] <= mn) { mn = a[i]; f[mn]++; } } mn = 1e9; for (int i = x + 1; i <= n; i++) { if (a[i] <= mn) { mn = a[i]; g[mn]++; } } int ans = 1; for (auto i : f) { ans = mul(ans, nCr(g[i.first] + i.second, i.second)); } cout << ans << '\n'; } } signed main () { #ifndef ONLINE_JUDGE freopen("input_file", "r", stdin); freopen("output_file", "w", stdout); #endif pre(); ios::sync_with_stdio(0); cin.tie(0); int tc = 1; //cin >> tc; while (tc--) solve(); }

Compilation message (stderr)

zarulje.cpp: In function 'int main()':
zarulje.cpp:70:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   70 |         freopen("input_file", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
zarulje.cpp:71:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   71 |         freopen("output_file", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...