Submission #3624472
Source Code Expand
#include<iomanip> #include<limits> #include<thread> #include<utility> #include<iostream> #include<string> #include<algorithm> #include<set> #include<map> #include<vector> #include<stack> #include<queue> #include<cmath> #include<numeric> #include<cassert> #include<random> #include<chrono> #include<unordered_map> #include<fstream> #include<list> #include<functional> #include<bitset> #include<complex> using namespace std; typedef unsigned long long int ull; typedef long long int ll; typedef pair<ll,ll> pll; typedef pair<int,int> pi; typedef pair<double,double> pd; typedef pair<double,ll> pdl; #define F first #define S second const ll E=1e18+7; const ll MOD=1000000007; template<long long int mod=1000000007> struct Mod_Int{ typedef long long int ll; typedef pair<ll,ll> pll; typedef Mod_Int<mod> M; ll a; ll mod_pow(ll a,ll x){ a%=mod; ll ans=1; for(int i=0;i<63;i++){ if(x>>i&1){ans*=a; ans%=mod;} a*=a; a%=mod; } return ans; } pll Ex_gcd(ll a,ll b){ if(b==0){return {1,0};} pll ret=Ex_gcd(b,a%b); ret.F-=a/b*ret.S; return {ret.S,ret.F}; } ll prime_R(ll a){ return mod_pow(a,mod-2); } ll R(ll a){ ll ret=Ex_gcd(a,mod).F; ret%=mod; if(ret<0){ret+=mod;} return ret; } Mod_Int(ll A=1):a(A){ a%=mod; if(a<0){a+=mod;} } Mod_Int(const M &b):a(b.a){} M & operator += (const M &b){ a+=b.a; if(a>=mod){a-=mod;} return *this; } M operator + (const M &b) const { M c=*this; return c+=b; } M & operator -= (const M &b){ a-=b.a; if(a<0){a+=mod;} return *this; } M operator - (const M &b) const { M c=*this; return c-=b; } M & operator *= (const M &b){ (a*=b.a)%=mod; return *this; } M operator * (const M &b) const { M c=*this; return c*=b; } M & operator /= (const M &b){ (a*=R(b.a))%=mod; return *this; } M operator / (const M &b) const { M c=*this; return c/=b; } M & mod_pow_equal(ll x){ ll ans=1; while(x>0){ if(x&1){ans*=a; ans%=mod;} a*=a; a%=mod; x>>=1; } a=ans; return *this; } M & mod_pow(ll x){ M c(a); return c.mod_pow_equal(x); } bool operator == (const M &b) const {return a==b.a;} bool operator != (const M &b) const {return a!=b.a;} bool operator <= (const M &b) const {return a<=b.a;} bool operator < (const M &b) const {return a<b.a;} bool operator > (const M &b) const {return a>b.a;} bool operator >= (const M &b) const {return a>=b.a;} M & operator = (const M &b){ a=b.a; return *this; } M & operator = (const ll &b){ (a=b)%=mod; if(a<0){a+=mod;} return *this; } }; typedef Mod_Int<1000000007> Int; int main(){ ll n; cin>>n; vector<ll> a(n); for(int i=0;i<n;i++){ cin>>a[i]; } bool j=false; ll w=1; Int ans=1; for(int i=0;i<n;i++,w++){ if(j){w--;} ans*=w; j=a[i]<w*2-1; } cout<<ans.a<<endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | A - Robot Racing |
User | tubuann |
Language | C++14 (GCC 5.4.1) |
Score | 900 |
Code Size | 3661 Byte |
Status | AC |
Exec Time | 42 ms |
Memory | 1024 KB |
Judge Result
Set Name | Sample | Subtask | All | ||||||
---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 500 / 500 | 400 / 400 | ||||||
Status |
|
|
|
Set Name | Test Cases |
---|---|
Sample | 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt |
Subtask | 0_00.txt, 0_01.txt, 0_02.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt, 1_10.txt |
All | 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt, 1_10.txt, 2_00.txt, 2_01.txt, 2_02.txt, 2_03.txt, 2_04.txt, 2_05.txt, 2_06.txt, 2_07.txt, 2_08.txt, 2_09.txt, 2_10.txt, 2_11.txt, 2_12.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
0_00.txt | AC | 1 ms | 256 KB |
0_01.txt | AC | 1 ms | 256 KB |
0_02.txt | AC | 1 ms | 256 KB |
0_03.txt | AC | 1 ms | 256 KB |
1_00.txt | AC | 1 ms | 256 KB |
1_01.txt | AC | 1 ms | 256 KB |
1_02.txt | AC | 1 ms | 256 KB |
1_03.txt | AC | 1 ms | 256 KB |
1_04.txt | AC | 1 ms | 256 KB |
1_05.txt | AC | 1 ms | 256 KB |
1_06.txt | AC | 1 ms | 256 KB |
1_07.txt | AC | 1 ms | 256 KB |
1_08.txt | AC | 1 ms | 256 KB |
1_09.txt | AC | 1 ms | 256 KB |
1_10.txt | AC | 1 ms | 256 KB |
2_00.txt | AC | 30 ms | 1024 KB |
2_01.txt | AC | 31 ms | 1024 KB |
2_02.txt | AC | 42 ms | 1024 KB |
2_03.txt | AC | 31 ms | 1024 KB |
2_04.txt | AC | 31 ms | 1024 KB |
2_05.txt | AC | 33 ms | 1024 KB |
2_06.txt | AC | 31 ms | 1024 KB |
2_07.txt | AC | 31 ms | 1024 KB |
2_08.txt | AC | 31 ms | 1024 KB |
2_09.txt | AC | 31 ms | 1024 KB |
2_10.txt | AC | 31 ms | 1024 KB |
2_11.txt | AC | 41 ms | 1024 KB |
2_12.txt | AC | 41 ms | 1024 KB |