제출 #1281968

#제출 시각아이디문제언어결과실행 시간메모리
1281968michael12Binaria (CCO23_day1problem1)C++20
0 / 25
1 ms576 KiB
#include <bits/stdc++.h> #define ff first #define ss second #define pb push_back #define mp make_pair using namespace std; const int maxn = 1e6 + 3; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n, m; cin >> n >> m; vector<int> a(n, -1); vector<int> b(m); for(int i = 0; i < m; i++){ cin >> b[i]; } bool is = 0; set<int> st; for(int i = 0; i < m - 1; i++){ if(abs(b[i] - b[i + 1]) > 1){ is = 1; } else{ if(b[i] - b[i + 1] == 1){ a[i] = 1; a[i + m] = 0; st.insert((i + 1) % m); } else if(b[i + 1] - b[i] == 1){ a[i] = 0; a[i + m] = 1; st.insert((i + 1) % m); } } } int ans = 0; for(int i = 0; i < m; i++){ if(a[i] > 0){ ans++; } } int x = b[0] - ans; int y = m - st.size(); int s = 1; int s1 = 1; int s2 = 1; for(int i = 1; i <= y; i++){ s = (s * i) % maxn; } for(int i = 1; i <= x; i++){ s1 = (s1 * i) % maxn; } for(int i = 1; i <= y - x; i++){ s2 = (s2 * i) % maxn; } cout << s / ((s1 * s2)%maxn); }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...