Submission #845497

#TimeUsernameProblemLanguageResultExecution timeMemory
845497vjudge1Trener (COCI20_trener)C++17
0 / 110
2035 ms344 KiB
// Imagine not FFT #include <bits/stdc++.h> //#define ONLINE_JUDGE #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace __gnu_pbds; #define ordered_set tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update> #ifndef ONLINE_JUDGE #define DEBUG(x) std::cerr << #x << ": " << x << std::endl; #define DEBUGV(x) std::cerr << #x << ": { "; for(auto ___y:x) std::cerr << ___y << " "; std::cerr << "}" << std::endl; #define DEBUGVV(x) std::cerr << #x << ": { \n"; for(int _i=0;_i<sz(x);++_i) {DEBUGV(x[_i]);} std::cerr << "}" << std::endl; #define DEBUGVP(x) std::cerr << #x << ": { "; for(auto ___y:x) std::cerr << "{" << ___y.first << "," << ___y.second << "}" << " "; std::cerr << "}" << std::endl; #define DEBUGPII(x) std::cerr << #x << ": { " << x.first << " , " << x.second << " }" << endl; #define files freopen("in.txt","r",stdin);freopen("out.txt","w",stdout); #define fastio std::ios_base::sync_with_stdio(false); std::cin.tie(nullptr); std::cout.tie(nullptr); #else #define fastio std::ios_base::sync_with_stdio(false); std::cin.tie(nullptr); std::cout.tie(nullptr); #define DEBUG(...) void(23) #define DEBUGV(x) void(23); #define DEBUGARR(arr, size) void(23) #define DEBUGPRINT(...) void(23) #define DEBUGMAP(...) void(23) #define DEBUGMAPQUEUE(...) void(23) #define DEBUGVV(x) void(23); #define DEBUGVP(x) void(23); #define DEBUGPII(x) void(23); #define files void(23); #endif #define int long long #define ll long long #define pb push_back #define ff first #define ss second #define pii std::pair < int , int > #define pll std::pair < ll , ll > #define vi std::vector < ll > #define vl std::vector < int > #define vii std::vector < pii > #define vll std::vector < pll > #define vvi std::vector < vi > #define vvii std::vector < vii > #define all(x) (x).begin(),(x).end() #define rall(x) (x).rbegin(),(x).rend() #define forn(i,j) for(int i=0;i<j;i++) #define forr(i,j,k) for(int i=j;i<k;i++) #define mset multiset #define pqueue priority_queue #define cmax(a,b) (a = max(a,b)) #define cmin(a,b) (a = min(a,b)) #define sz(a) (int)(a.size()) const int MOD = 1000000007; const int MOD2 = 998244353; using namespace std; bool isSub(string a, string b){ if((b[0]+a)==b) return true; if((a+b[sz(b)-1])==b) return true; return false; } int add(int a, int b){ return (a+b)%MOD; } int addd(int& a, int b){ return (a=((a+b)%MOD)); } map < string , int > c,cy,cr; void solve(int _t_case){ int n,k; forn(i,26){ string s="a"; s[0]+=i; c[s]=1; } cin >> n >> k; vector < int > a; forn(i,n){ forn(j,k){ string sur; cin >> sur; if(i+1<n && c[sur]>0){ int thi=c[sur]; for(int __i_=0;__i_<26;__i_++){ addd(cy[(char(__i_+'a'))+sur],thi); if(((char(__i_+'a'))+sur)!=(sur+(char(__i_+'a')))) addd(cy[sur+(char(__i_+'a'))],thi); } } if(i+1==n && c[sur]>0) a.pb(c[sur]); } if(true || i+1!=n){ c=cy; cy=cr; DEBUGVP(c); DEBUGVP(cy); } } DEBUGVP(c); int ans = 0; for(auto _a:a) addd(ans,_a); cout << ans << endl; return; } signed main(){ fastio; files; int t=1,_t=0; //std::cin >> t; while(_t<t){ ++_t; solve(_t); } return 0; }

Compilation message (stderr)

trener.cpp: In function 'int main()':
trener.cpp:17:23: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   17 |  #define files freopen("in.txt","r",stdin);freopen("out.txt","w",stdout);
      |                ~~~~~~~^~~~~~~~~~~~~~~~~~~~
trener.cpp:118:5: note: in expansion of macro 'files'
  118 |     files;
      |     ^~~~~
trener.cpp:17:51: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   17 |  #define files freopen("in.txt","r",stdin);freopen("out.txt","w",stdout);
      |                                            ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
trener.cpp:118:5: note: in expansion of macro 'files'
  118 |     files;
      |     ^~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...