QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#603686 | #9353. Interesting Permutation | Saton | Compile Error | / | / | C++20 | 2.9kb | 2024-10-01 18:19:32 | 2024-10-01 18:19:32 |
Judging History
answer
//by Saton.
#include<bits/stdc++.h>
#define PI acos(-1)
#define fi first
#define se second
#define sz(a) ((int)a.size())
#define all(a) a.begin(), a.end()
#define LL long long
#define ll __int128
#define DD double double
#define LD long double
#define rep(i,a,b) for(LL i = (a);i <= (b);i ++)
#define lep(i,a,b) for(LL i = (a);i >= (b);i --)
#define FLUSH fflush(stdout)
using namespace std;
const int N = 2e5 + 10,mod = 1e9+7,P = 131;
const LL inf = 1e9+10,INF = 1e18+10;
typedef pair<int,int> PII;
typedef pair<LL,int> PLI;
typedef pair<LL,LL> PLL;
LL n,m,k;
void solve() {
cin >> n;
vector<LL> a(n+1);
rep(i,1,n) cin >> a[i];
if(a[1]!=0 || a[n]!=n-1) {
cout << 0 << '\n';
return;
}
if(n==1) {
cout << 1 << '\n';
return;
}
rep(i,1,n-1) if(a[i]>a[i+1]) {
cout << 0 << '\n';
return;
}
LL ans = 1;
map<int,int> cnt;
rep(i,1,n-1) {
if(i!=1) cnt[a[i]] ++;
if(a[i]!=a[i+1]) ans = ans*2%mod;
}
rep(i,2,n) if(a[i]!=a[i-1]) {
int t = a[i] - i + 2;
if(t<cnt[a[i]]) ans = 0;
}
for(auto [u,v] : cnt) if(u<v) {
cout << 0 << '\n';
return;
}
cout << ans << '\n';
}
int main() {
ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
int T;
cin >> T;
while(T --) {
solve();
}
// solve();
return 0;
}
/* /\_/\
* (= ._.)
* / > \>
*////by Saton.
#include<bits/stdc++.h>
#define PI acos(-1)
#define fi first
#define se second
#define sz(a) ((int)a.size())
#define all(a) a.begin(), a.end()
#define LL long long
#define ll __int128
#define DD double double
#define LD long double
#define rep(i,a,b) for(LL i = (a);i <= (b);i ++)
#define lep(i,a,b) for(LL i = (a);i >= (b);i --)
#define FLUSH fflush(stdout)
using namespace std;
const int N = 2e5 + 10,mod = 1e9+7,P = 131;
const LL inf = 1e9+10,INF = 1e18+10;
typedef pair<int,int> PII;
typedef pair<LL,int> PLI;
typedef pair<LL,LL> PLL;
LL n,m,k;
void solve() {
cin >> n;
vector<LL> a(n+1);
rep(i,1,n) cin >> a[i];
if(a[1]!=0 || a[n]!=n-1) {
cout << 0 << '\n';
return;
}
if(n==1) {
cout << 1 << '\n';
return;
}
rep(i,1,n-1) if(a[i]>a[i+1]) {
cout << 0 << '\n';
return;
}
LL ans = 1,now = 0;
rep(i,1,n-1) {
if(a[i]!=a[i+1]) {
ans = ans*2%mod;
now += a[i+1] - a[i]-1;
}
else {
ans = ans*now%mod;
now --;
}
}
cout << ans << '\n';
}
int main() {
ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
int T;
cin >> T;
while(T --) {
solve();
}
// solve();
return 0;
}
/* /\_/\
* (= ._.)
* / > \>
*/
Details
answer.code:88:11: error: redefinition of ‘const int N’ 88 | const int N = 2e5 + 10,mod = 1e9+7,P = 131; | ^ answer.code:16:11: note: ‘const int N’ previously defined here 16 | const int N = 2e5 + 10,mod = 1e9+7,P = 131; | ^ answer.code:88:24: error: redefinition of ‘const int mod’ 88 | const int N = 2e5 + 10,mod = 1e9+7,P = 131; | ^~~ answer.code:16:24: note: ‘const int mod’ previously defined here 16 | const int N = 2e5 + 10,mod = 1e9+7,P = 131; | ^~~ answer.code:88:37: error: redefinition of ‘const int P’ 88 | const int N = 2e5 + 10,mod = 1e9+7,P = 131; | ^ answer.code:16:37: note: ‘const int P’ previously defined here 16 | const int N = 2e5 + 10,mod = 1e9+7,P = 131; | ^ answer.code:89:10: error: redefinition of ‘const long long int inf’ 89 | const LL inf = 1e9+10,INF = 1e18+10; | ^~~ answer.code:17:10: note: ‘const long long int inf’ previously defined here 17 | const LL inf = 1e9+10,INF = 1e18+10; | ^~~ answer.code:89:23: error: redefinition of ‘const long long int INF’ 89 | const LL inf = 1e9+10,INF = 1e18+10; | ^~~ answer.code:17:23: note: ‘const long long int INF’ previously defined here 17 | const LL inf = 1e9+10,INF = 1e18+10; | ^~~ answer.code:93:4: error: redefinition of ‘long long int n’ 93 | LL n,m,k; | ^ answer.code:21:4: note: ‘long long int n’ previously declared here 21 | LL n,m,k; | ^ answer.code:93:6: error: redefinition of ‘long long int m’ 93 | LL n,m,k; | ^ answer.code:21:6: note: ‘long long int m’ previously declared here 21 | LL n,m,k; | ^ answer.code:93:8: error: redefinition of ‘long long int k’ 93 | LL n,m,k; | ^ answer.code:21:8: note: ‘long long int k’ previously declared here 21 | LL n,m,k; | ^ answer.code:95:6: error: redefinition of ‘void solve()’ 95 | void solve() { | ^~~~~ answer.code:23:6: note: ‘void solve()’ previously defined here 23 | void solve() { | ^~~~~ answer.code:128:5: error: redefinition of ‘int main()’ 128 | int main() { | ^~~~ answer.code:59:5: note: ‘int main()’ previously defined here 59 | int main() { | ^~~~