Submission #20672

#TimeUsernameProblemLanguageResultExecution timeMemory
20672우리OJ (#35)복불복 (OJUZ11_luck)C++14
22 / 100
3 ms2024 KiB
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <memory.h> #include <math.h> #include <assert.h> #include <queue> #include <map> #include <set> #include <string> #include <algorithm> #include <iostream> #include <functional> #include <unordered_map> #include <unordered_set> #include <list> #include <bitset> using namespace std; typedef pair<int, int> Pi; typedef long long ll; #define pii Pi #define pll PL #define Fi first #define Se second #define pb(x) push_back(x) #define sz(x) ((int)(x).size()) #define rep(i, n) for(int i=0;i<n;i++) #define all(x) (x).begin(), (x).end() typedef tuple<int, int, int> t3; typedef pair<ll, ll> PL; int n, k; int A[110], B[110]; const int MOD = 1e9 + 7; void subtask_1(){ int p[8] = {}, ans = 0; rep(i, n)p[i] = i; do{ int aa = 1e9, bb = 0; rep(i, n){ if(i < k)aa = min(aa, A[i] + B[p[i]]); else bb = max(bb, A[i] + B[p[i]]); } if(aa >= bb)ans++; }while(next_permutation(p, p+n)); printf("%d\n", ans); } void subtask_2(){ ll ans = 0; for(int i=0;i<n;i++){ int aa = A[0] + B[i]; int v[110] = {}; for(int j=1;j<n;j++){ int c = 0; for(int k=0;k<n;k++)if(i != k && B[k] + A[j] <= aa)++c; for(int k=1;k<=c;k++)v[k]++; } ll now = 1; for(int j=n-1;j;j--){ now = now * v[j] % MOD; for(int k=j;k;k--)v[k]--; } ans = (ans + now) % MOD; } printf("%lld\n", ans); } void solve(){ scanf("%d%d", &n, &k); rep(i, n)scanf("%d", A+i); rep(i, n)scanf("%d", B+i); sort(A, A+n); reverse(A, A+n); sort(B, B+n); reverse(B, B+n); if(n <= 8){ subtask_1(); return; } if(k == 1){ subtask_2(); } else return; } int main(){ int Tc = 1; //scanf("%d", &Tc); for(int tc=1;tc<=Tc;tc++){ //printf("Case #%d: ", tc); solve(); } return 0; }

Compilation message (stderr)

luck.cpp: In function 'void solve()':
luck.cpp:73:23: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d", &n, &k);
                       ^
luck.cpp:74:27: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  rep(i, n)scanf("%d", A+i);
                           ^
luck.cpp:75:27: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  rep(i, n)scanf("%d", B+i);
                           ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...