Submission #147655

#TimeUsernameProblemLanguageResultExecution timeMemory
147655xDWaffleLjetopica (COI19_ljetopica)C++11
0 / 100
1068 ms376 KiB
#include <bits/stdc++.h> #define ff(j, a, b) for(int j=a;j<b;j++) #define pb push_back; #define MOD 1000000007 using namespace std; typedef long long ll; ll n, k; ll a, b, path; void load_path() { path=1; ff(j, 0, n-1) { char tmp; cin >> tmp; path=path*2; if(tmp=='R') { path++; } } } ll bin_string_to_ll(string s) { ll res=1; ff(j, 1, s.size()) { res=res*2; if(s[j]=='1') { res++; } res=res%MOD; } return res; } ll switch_at_depth_q(ll q, ll pathing) { return ((1 << (n-q) )-1) ^ pathing; } ll check_pathing(ll x) { return (x<=b && x>=a) ? x : 0; } ll ena_je_budala_neopjevana(ll switches, ll depth, ll pathing) { if(switches==n-depth && switches>0) { return (ena_je_budala_neopjevana(switches-1, depth+1, switch_at_depth_q(depth, pathing)))%MOD; } if(depth==1) { ll sol=ena_je_budala_neopjevana(switches, depth+1, pathing); sol+=ena_je_budala_neopjevana(switches, depth+1, switch_at_depth_q(depth, pathing)); if(switches>0) { sol+=ena_je_budala_neopjevana(switches-1, depth+1, pathing); sol+=ena_je_budala_neopjevana(switches-1, depth+1, switch_at_depth_q(depth, pathing)); } return sol%MOD; } if(switches==0) { return check_pathing(pathing)%MOD; } return (ena_je_budala_neopjevana(switches, depth+1, pathing) + ena_je_budala_neopjevana(switches-1, depth+1, switch_at_depth_q(depth, pathing)))%MOD; } int main() { cin >> n >> k; load_path(); string tmpstrng; cin >> tmpstrng; a=bin_string_to_ll(tmpstrng); cin >> tmpstrng; b=bin_string_to_ll(tmpstrng); ///zavrseno ucitavanje!! /// XOR <=> ^ cout << (int)ena_je_budala_neopjevana(k, 1, path) << endl; return 0; }

Compilation message (stderr)

ljetopica.cpp: In function 'll bin_string_to_ll(std::__cxx11::string)':
ljetopica.cpp:2:34: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
 #define ff(j, a, b) for(int j=a;j<b;j++)
ljetopica.cpp:34:8:
     ff(j, 1, s.size())
        ~~~~~~~~~~~~~~             
ljetopica.cpp:34:5: note: in expansion of macro 'ff'
     ff(j, 1, s.size())
     ^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...