Submission #1000587
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
#define jjs(i, s, x) for (int i = (s); i < int(x); ++i)
#define jjl(i, x) jjs(i, 0, x)
#define ji(x) jjl(i, x)
#define jj(x) jjl(j, x)
#define jk(x) jjl(k, x)
#define jij(a, b) ji(a) jj(b)
#define jij2d(v) jij((v).size(), (v)[i].size())
#define jjdescent(i, s, e) for (int i = (s)-1; i >= int(e); --i)
#define jjrev(i, s) jjdescent(i, s, 0)
#define foreach(x, C) for (auto& x : (C))
#define INF ((int) 1e9+10)
#define LINF ((long long) 1e16)
#define pb push_back
#define mp make_pair
#define rint readInteger
template<typename T>
bool readInteger(T& x)
{
char c, r = 0, n = 0;
x = 0;
while (true)
{
c = getchar();
if (c < 0 && !r)
return 0;
else if (c == '-' && !r)
n = 1;
else if (c >= '0' && c <= '9')
x = x * 10 + c - '0', r = 1;
else if (r)
break;
}
if (n)
x = -x;
return 1;
}
template<typename T>
vector<T> readIntegral(int n)
{
vector<T> ret(n);
for (int i = 0; i < n; i++)
readInteger(ret[i]);
return ret;
}
auto readInts = readIntegral<int>;
auto readLongs = readIntegral<long long>;
template<typename T>
vector<vector<T>> make2d(size_t r, size_t c)
{
return vector<vector<T>>(r, vector<T>(c));
}
template<typename T>
vector<vector<T>> make2d(size_t r, size_t c, const T& def)
{
return vector<vector<T>>(r, vector<T>(c, def));
}
template <typename T, T MOD>
struct ModInt
{
T value;
ModInt() : value(0)
{}
ModInt(T x)
{
x %= MOD;
if (x < 0)
x += MOD;
value = x;
}
public:
ModInt& operator += (ModInt x)
{
value += x.value;
if (value >= MOD)
value -= MOD;
return *this;
}
ModInt& operator -= (ModInt x)
{
value -= x.value;
if (value < 0)
value += MOD;
return *this;
}
ModInt& operator *= (ModInt x)
{
value *= x.value;
value %= MOD;
return *this;
}
ModInt& operator /= (ModInt x)
{
x.invert();
return *this *= x;
}
ModInt operator + (ModInt x) const
{
ModInt o = *this;
o += x;
return o;
}
ModInt operator - (ModInt x) const
{
ModInt o = *this;
o -= x;
return o;
}
ModInt operator * (ModInt x) const
{
ModInt o = *this;
o *= x;
return o;
}
ModInt operator / (ModInt x) const
{
ModInt o = *this;
o /= x;
return o;
}
bool operator == (ModInt x) const
{
return value == x.value;
}
bool operator != (ModInt x) const
{
return !(*this == x);
}
ModInt operator - () const
{
return ModInt(0) - *this;
}
ModInt operator ^ (long long x) const
{
ModInt ret = 1 % MOD;
ModInt mul = *this;
while (x)
{
if (x & 1)
ret *= mul;
mul *= mul;
x >>= 1;
}
return ret;
}
ModInt& operator ^= (long long x)
{
return *this = *this ^ x;
}
private:
void invert()
{
*this ^= MOD-2;
}
public:
friend ostream& operator << (ostream& out, const ModInt& x)
{
return out << x.value;
}
};
template<typename T>
using v2d = vector<vector<T>>;
typedef ModInt<long long, 1000000007> mint;
typedef long long ll;
typedef pair<int, int> PII;
typedef vector<PII> VPII;
typedef vector<int> VI;
typedef v2d<int> VVI;
typedef vector<ll> VLL;
typedef v2d<ll> VVLL;
typedef vector<char> VCH;
typedef v2d<char> VVCH;
int main()
{
int n;
rint(n);
VI a(n), b(n);
ji(n) rint(a[i]);
ji(n) rint(b[i]);
VPII pr;
foreach(x, a) {
pr.emplace_back(x, 0);
}
foreach(x, b) {
pr.emplace_back(x, 1);
}
sort(pr.begin(), pr.end());
mint ans = 1;
int cnt = 0;
int ct = 0;
foreach(z, pr)
{
if (cnt == 0)
{
ct = z.second;
}
if (ct == z.second)
{
++cnt;
}
else
{
ans *= cnt;
--cnt;
}
}
cout << ans << endl;
}
Submission Info
Submission Time |
|
Task |
A - 1D Matching |
User |
zxqfl |
Language |
C++14 (GCC 5.4.1) |
Score |
500 |
Code Size |
3771 Byte |
Status |
AC |
Exec Time |
42 ms |
Memory |
3188 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
500 / 500 |
Status |
|
|
Set Name |
Test Cases |
Sample |
example0.txt, example1.txt |
All |
000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, 011.txt, example0.txt, example1.txt |
Case Name |
Status |
Exec Time |
Memory |
000.txt |
AC |
26 ms |
1912 KB |
001.txt |
AC |
11 ms |
1020 KB |
002.txt |
AC |
14 ms |
1148 KB |
003.txt |
AC |
16 ms |
1656 KB |
004.txt |
AC |
38 ms |
3060 KB |
005.txt |
AC |
42 ms |
3188 KB |
006.txt |
AC |
42 ms |
3188 KB |
007.txt |
AC |
42 ms |
3188 KB |
008.txt |
AC |
42 ms |
3188 KB |
009.txt |
AC |
42 ms |
3188 KB |
010.txt |
AC |
41 ms |
3188 KB |
011.txt |
AC |
41 ms |
3188 KB |
example0.txt |
AC |
3 ms |
256 KB |
example1.txt |
AC |
2 ms |
256 KB |