Submission #1252014

#TimeUsernameProblemLanguageResultExecution timeMemory
1252014_rain_Kangaroo (CEOI16_kangaroo)C++20
6 / 100
0 ms328 KiB
#include<bits/stdc++.h> using namespace std; typedef long long LL; #define FOR(i,a,b) for(int i = (a) , _b = (b); i <= _b; ++i) #define MASK(x) ((LL)(1)<<(x)) #define BIT(mask , x) (((mask)>>(x))&(1)) template<class X , class Y> bool maximize(X &x , Y y){ if (x<y) return x=y,true; else return false; } template<class X,class Y> bool minimize(X &x, Y y){ if (x>y) return x=y,true; else return false; } template<class T> void compress(vector<T>&data){ sort(data.begin() , data.end()) ; data.resize(unique(data.begin() , data.end()) - data.begin()); return; } mt19937_64 rng(chrono::high_resolution_clock::now().time_since_epoch().count()); int Rand(int l,int r){ return uniform_int_distribution<int>(l,r)(rng); } const int N = (int)2000; const int MOD = (int)1e9+7; int add(int a,int b){ return a + b >= MOD ?a + b - MOD : a + b; } int start , finish , n; namespace subtask1{ int type(int prev,int cur){ if (prev < cur) return 1; return 0; } const int MAXN = 8; int dp[MASK(MAXN)][MAXN][MAXN]; void main_code(void){ --start , --finish; FOR(i,0,n-1) if (i!=start) dp[MASK(i)|MASK(start)][start][i] = 1; FOR(mask,0,MASK(n)-1) FOR(i,0,n){ if (BIT(mask,i)) { FOR(j,0,n) if (i!=j){ FOR(nxt , 0 , n) if (!BIT(mask,nxt)){ if (type(nxt , i) == type(j , i)) dp[mask|MASK(nxt)][i][nxt] = add(dp[mask|MASK(nxt)][i][nxt] , dp[mask][j][i]); } } } } int ans = 0; FOR(i,0,n-1) if (i != finish) ans = add(ans , dp[MASK(n)-1][i][finish]); cout<<ans; } } int main(){ ios::sync_with_stdio(false); cin.tie(0) ; cout.tie(0); #define name "main" if (fopen(name".inp","r")){ freopen(name".inp","r",stdin); freopen(name".out","w",stdout); } cin >> n >> start >> finish; if (n <= 8) return subtask1::main_code() , 0; }

Compilation message (stderr)

kangaroo.cpp: In function 'int main()':
kangaroo.cpp:67:32: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   67 |                         freopen(name".inp","r",stdin);
      |                         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
kangaroo.cpp:68:32: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   68 |                         freopen(name".out","w",stdout);
      |                         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...