Submission #951872

#TimeUsernameProblemLanguageResultExecution timeMemory
951872Saul0906PIN (CEOI10_pin)C++14
45 / 100
1098 ms18780 KiB
#include <bits/stdc++.h> #define rep(a,b,c) for(int a=b; a<c; a++) #define repa(a,b) for(auto a:b) #define fi first #define se second #define pii pair<int, int> #define ll long long #define endl "\n" using namespace std; struct trie{ trie *nxt[36]; int cont=0; } *TR = new trie; void add(string s){ trie *act=TR; int x; rep(i,0,s.size()){ if(s[i]>'9' || s[i]<'0') x=s[i]-'a'+10; else x=s[i]-'0'; if(!(act->nxt[x])) act->nxt[x]=new trie; act=act->nxt[x]; act->cont++; } } int solve(string s, int i, int x, trie *act){ if(!act || x<0 || 4-i<x) return 0; if(i==4) return act->cont; int ans=0, y; if(x){ rep(j,0,10) if(j+'0'!=s[i]) ans+=solve(s,i+1,x-1,act->nxt[j]); rep(j,0,26) if(j+'a'!=s[i]) ans+=solve(s,i+1,x-1,act->nxt[j+10]); } if(s[i]>'9' || s[i]<'0') y=s[i]-'a'+10; else y=s[i]-'0'; ans+=solve(s,i+1,x,act->nxt[y]); return ans; } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n, d, ans=0; cin>>n>>d; string s[n]; rep(i,0,n){ cin>>s[i]; ans+=solve(s[i],0,d,TR); add(s[i]); } cout<<ans<<endl; }

Compilation message (stderr)

pin.cpp: In function 'void add(std::string)':
pin.cpp:2:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    2 | #define rep(a,b,c) for(int a=b; a<c; a++)
......
   20 |  rep(i,0,s.size()){
      |      ~~~~~~~~~~~~                 
pin.cpp:20:2: note: in expansion of macro 'rep'
   20 |  rep(i,0,s.size()){
      |  ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...