#include<bits/stdc++.h>
using namespace std;
#define task "a"
#define ll long long
#define FORE(i, v) for(__typeof((v).begin()) i = (v).begin(); i != (v).end(); i++)
#define ed << "\n";
#define el cout<<'\n';
#define ALL(s) s.begin(),s.end()
#define fi first
#define se second
#define SQ(a) (a)*(a)
#define A(a) abs(a)
#define SZ(a) ((int)(a.size()))
#define REP(i,a,b) for (int i = (a), _b = (b); i < _b; i++)
#define FOR(i,a,b) for (int i = (a), _b = (b); i <= _b; i++)
#define FOD(i,r,l) for(int i=r; i>=l; i--)
#define MASK(x) (1LL << (x))
#define BIT(x, i) ((x) >> (i) & 1)
#define pii pair<int,int>
#define db double
#define II(a, b) make_pair((a),(b))
#define pb(x) push_back(x)
#define ull unsigned long long
const int mod = 1e9 + 7;
const ll MOD = 998244353;
const ll INF = 1e18 + 2;
/// 998244353;
/// 1e9 + 7;
/// 1e9 + 25;
/// 999999939;
/// 1e12 + 7;
mt19937_64 rd(chrono::steady_clock::now().time_since_epoch().count());
ll random(ll l, ll r) {
return l + rd() % (r - l + 1);
}
ll mul(ll a, ll b) {
if(a >= mod) a %= mod;
if(b >= mod) b %= mod;
return 1ULL * a * b % mod;
}
ll add(ll a, ll b) {
if(a >= mod) a %= mod;
if(b >= mod) b %= mod;
a += b;
if(a >= mod) a -= mod;
if(a < 0) a += mod;
return a;
}
ll opt_mul(ll a, ll b, const ll &p) {
ll res = 0;
a %= p;
b %= p;
while(b) {
if(b & 1) {
res = res + a;
if(res >= p)
res -= p;
}
a = a + a;
if(a >= p) a -= p;
b >>= 1;
}
return res;
}
long long opt_pw(ll a, ll b,const ll &p) {
ll res = 1;
while(b) {
if(b & 1) res = opt_mul(res, a, p);
a = opt_mul(a, a, p);
b = b >> 1;
}
return res;
}
int pw(int a, int b) {
int res = 1;
while(b) {
if(b & 1)
res = mul(res, a);
b = b >> 1;
a = mul(a, a);
}
return res;
}
template <class T> inline bool minimize(T &a, const T &b) {
return (a > b ? (a = b),1 : 0);
}
template <class T> inline bool maximize(T &a, const T &b) {
return (a < b ? (a = b),1 : 0);
}
void ReadInp() {
if(fopen(task".inp","r")) {
freopen(task".inp","r",stdin);
freopen(task".out","w",stdout);
}
#define task "a"
if(fopen(task".inp","r")) {
freopen(task".inp","r",stdin);
freopen(task".out","w",stdout);
}
#define task "maxsub"
if(fopen(task".inp","r")) {
freopen(task".inp","r",stdin);
freopen(task".out","w",stdout);
}
#define task "disrupt"
if(fopen(task".in","r")) {
freopen(task".in","r",stdin);
freopen(task".out","w",stdout);
}
}
const int maxn = 2e5 + 5;
/// a.end()[-1];
/// get <0> (q.top())
int n, L;
int a[maxn];
int p[maxn];
void sol() {
cin >> n >> L;
FOR(i, 1, n) cin >> a[i];
assert(n <= 8);
int cnt = 0;
FOR(i, 1, n) p[i] = i;
do{
int cost = 0;
REP(i, 1, n) cost += A(a[p[i + 1]] - a[p[i]]);
if(cost <= L)
cnt ++;
}while(next_permutation(p + 1, p + n + 1));
cout << cnt;
}
signed main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL), cout.tie(NULL);
ReadInp();
int t = 1; //cin >> t;
while(t --) sol();
return 0;
}
Compilation message
skyscraper.cpp:123: warning: "task" redefined
123 | #define task "maxsub"
|
skyscraper.cpp:117: note: this is the location of the previous definition
117 | #define task "a"
|
skyscraper.cpp:129: warning: "task" redefined
129 | #define task "disrupt"
|
skyscraper.cpp:123: note: this is the location of the previous definition
123 | #define task "maxsub"
|
skyscraper.cpp: In function 'void ReadInp()':
skyscraper.cpp:113:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
113 | freopen(task".inp","r",stdin);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
skyscraper.cpp:114:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
114 | freopen(task".out","w",stdout);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
skyscraper.cpp:119:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
119 | freopen(task".inp","r",stdin);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
skyscraper.cpp:120:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
120 | freopen(task".out","w",stdout);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
skyscraper.cpp:125:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
125 | freopen(task".inp","r",stdin);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
skyscraper.cpp:126:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
126 | freopen(task".out","w",stdout);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
skyscraper.cpp:131:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
131 | freopen(task".in","r",stdin);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
skyscraper.cpp:132:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
132 | freopen(task".out","w",stdout);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Output is correct |
2 |
Correct |
0 ms |
344 KB |
Output is correct |
3 |
Correct |
0 ms |
348 KB |
Output is correct |
4 |
Correct |
0 ms |
348 KB |
Output is correct |
5 |
Correct |
1 ms |
348 KB |
Output is correct |
6 |
Correct |
1 ms |
348 KB |
Output is correct |
7 |
Correct |
1 ms |
348 KB |
Output is correct |
8 |
Correct |
1 ms |
348 KB |
Output is correct |
9 |
Correct |
1 ms |
604 KB |
Output is correct |
10 |
Correct |
1 ms |
348 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Runtime error |
1 ms |
604 KB |
Execution killed with signal 6 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Output is correct |
2 |
Correct |
0 ms |
344 KB |
Output is correct |
3 |
Correct |
0 ms |
348 KB |
Output is correct |
4 |
Correct |
0 ms |
348 KB |
Output is correct |
5 |
Correct |
1 ms |
348 KB |
Output is correct |
6 |
Correct |
1 ms |
348 KB |
Output is correct |
7 |
Correct |
1 ms |
348 KB |
Output is correct |
8 |
Correct |
1 ms |
348 KB |
Output is correct |
9 |
Correct |
1 ms |
604 KB |
Output is correct |
10 |
Correct |
1 ms |
348 KB |
Output is correct |
11 |
Runtime error |
1 ms |
604 KB |
Execution killed with signal 6 |
12 |
Halted |
0 ms |
0 KB |
- |